/*>library.c
 *
 * Cybertron Mission
 * BBC version by Matthew Bates. Copyright Micro Power Software 1983.
 * RISC OS Conversion by Michael Foot.
 * Version 1.01 (09 Feb 2003).
 *
 */

#include <stdio.h>
#include "r6502lib.h"

extern void m0D80(void);
extern void m0D9C(void);
extern void m0DB7(void);
extern void m0DBF(void);
extern void m0DDD(void);
extern void m0E02(void);
extern void m0E2E(void);
extern void m0EFE(void);
extern void m0FA7(void);
extern void m0FB3(void);
extern void m0FBB(void);
extern void m0FCF(void);
extern int m0FD6(void);
extern void m1071(void);
extern void m10FA(void);
extern void m110E(void);
extern void m111B(void);
extern void m112D(void);
extern void m1138(void);
extern void m1145(void);
extern void m1175(void);
extern void m11FE(void);
extern void m1287(void);
extern void m12BF(void);
extern void m12D8(void);
extern void m12DD(void);
extern void m1307(void);
extern void m1311(void);
extern void m1341(void);
extern void m13AA(void);
extern void m13B4(void);
extern void m13C0(void);
extern void m13D8(void);
extern void m13E0(void);
extern void m13E8(void);
extern void m13FB(void);
extern void m1404(void);
extern void m1434(void);
extern void m147E(void);
extern void m14AF(void);
extern void m14B9(void);
extern void m1516(void);
extern int m15C3(void);
extern void m1609(void);
extern void m166A(void);
extern void m16BE(void);
extern void m16E1(void);
extern void m1718(void);
extern void m172A(void);
extern void m1735(void);
extern int m184E(void);
extern void m19AA(void);
extern void m19D1(void);
extern void m1A9E(void);
extern void m1AFB(void);
extern void m1B38(void);
extern void m1B5D(void);
extern void m1B90(void);
extern void m1BC6(void);
extern void m1BD6(void);
extern void m1C4B(void);
extern void m1C9C(void);
extern void m1CE1(void);
extern void m1CFF(void);
extern void m1D90(void);
extern void m1DA3(void);
extern void m1DB5(void);
extern void m1DD9(void);
extern void m1E20(void);
extern void m1E25(void);
extern void m1E8E(void);
extern void m1F06(void);
extern void m1F1C(void);
extern void m1F6D(void);
extern void m1FBA(void);
extern void m1FC5(void);
extern void m1FF5(void);
extern void m2011(void);
extern void m202F(void);
extern void m2041(void);
extern void m204B(void);
extern void m20B1(void);
extern void m20D4(void);
extern void m2107(void);
extern void m2134(void);
extern void m223B(void);
extern void m224D(void);
extern void m226A(void);
extern void m2298(void);
extern void m2328(void);
extern void m2333(void);
extern void m2349(void);
extern void m237C(void);
extern void m239D(void);
extern void m23A8(void);
extern void m2406(void);
extern void m2432(void);
extern void m2460(void);
extern void m2473(void);
extern void m24A1(void);
extern void m24AD(void);
extern void m24C7(void);
extern void m24C9(void);
extern void m24D3(void);
extern void m24F6(void);
extern void m2523(void);

extern int initial_lives;
extern int initial_level;

void m0D80(void)
{
  LDX_IMMED(0x04)
m0D82:
  DEX
  BMI(m0D90)
  LDA_ABSXP(0x0CEC)
  CMP_ABSXP(0x0BB0)
  BEQ(m0D82)
  BPL(m0D90)
  RTS
m0D90:
  LDX_IMMED(0x03)
m0D92:
  LDA_ABSXP(0x0CEC)
  STA_ABSOX(0x0BB0)
  DEX
  BPL(m0D92)
  RTS
}

void m0D9C(void)
{
  LDX_IMMED(0x03)
  LDY_IMMED(0x00)
m0DA0:
  LDA_ABSXP(0x0BB0)
  SEC
  SBC_IMMED(0x10)
  STA_ABSOY(0x2699)
  LDA_ABSXP(0x0CEC)
  SEC
  SBC_IMMED(0x10)
  STA_ABSOY(0x2686)
  INY
  DEX
  BPL(m0DA0)
  RTS
}

void m0DB7(void)
{
  JSR_ABSOL(0x0DB7,m1FBA)
  LDA_IMMED(0x0C)
  /*JMP_ABSOL(mFFEE)*/
  OSWRCH
}

void m0DBF(void)
{
  LDA_ABSOL(0x0BB6)
  AND_IMMED(0x03)
  STA_ZEROP(0x76)
  CLC
  ADC_ZEROP(0x76)
  ADC_ZEROP(0x76)
  ASL
  ASL
  ASL
  TAX
  LDY_IMMED(0x00)
m0DD1:
  LDA_ABSXP(0x07A0)
  STA_POSTI(0x70)
  INY
  INX
  CPY_IMMED(0x18)
  BNE(m0DD1)
  RTS
}

void m0DDD(void)
{
  /*wait for vertical sync*/
  /*LDA_ABSOL(0x0C03)
  BEQ(m0DE7)
  LDA_IMMED(0x13)
  JMP_ABSOL(mFFF4)
  RTS
m0DE7:
  LDA_ABSOL(0x0224)
m0DEA:
  CMP_ABSOL(0x0224)
  BEQ(m0DEA)*/
  while (clock() < video_timer)
  {
  }
  video_timer = clock() + TIME_50HZ;
  RTS
}

void m0E02(void)
{
  OSRDCH
  JSR_ABSOL(0x0E02,m13B4)
  bbc_video_mode = 0x02;
  bbc_video_addr = 0x3000;
  /*bbcvdu(22);
  bbcvdu(12);*/
  getscreenaddress();
m0E05:
  LDA_IMMED(0x0C)
  JSR_ABSOL(0x0E07,m224D)
  LDA_IMMED(0x10)
  JSR_ABSOL(0x0E0F,m224D)
  JSR_ABSOL(0x0E12,m0DB7)
  JSR_ABSOL(0x0E15,m1145)
  JSR_ABSOL(0x0E18,m1FC5)
  JSR_ABSOL(0x0E1B,m0E2E)
  if (quit)
    return;
  BCS(m0E85)
  while (clock() < video_timer)
  {
  }
  video_timer = clock() + TIME_50HZ;
  JSR_ABSOL(0x0E20,m0DB7)
  JSR_ABSOL(0x0E23,m1175)
  JSR_ABSOL(0x0E26,m1FC5)
  JSR_ABSOL(0x0E29,m0E2E)
  if (quit)
    return;
  BCS(m0E85)
  while (clock() < video_timer)
  {
  }
  video_timer = clock() + TIME_50HZ;

  /*need an escape flag here!*/

  JMP_ABSOL(m0E05)

m0E85:
  /*lives*/
  LDA_IMMED(initial_lives) /*0x04*/
  STA_ABSOL(0x0BB4)
  LDA_IMMED(0x00)
  STA_ZEROP(0x32)
  LDA_IMMED(0x00)
  STA_ZEROP(0xB8)
  STA_ABSOL(0x0BB7)
  /*level*/
  LDA_IMMED(initial_level) /*0x01*/
  STA_ABSOL(0x0BB6)
  LDA_IMMED(0x20)
  LDX_IMMED(0x03)
m0E9E:
  STA_ABSOX(0x0CEC)
  DEX
  BPL(m0E9E)

m0EA4:
  JSR_ABSOL(0x0EA7,m0DB7)
  LDA_IMMED(0x00)
  STA_ABSOL(0x0BB5)
  STA_ZEROP(0xCF)
  /*FIND THE FOLLOWING*/
  JSR_ABSOL(0x0EB1,m11FE)
  LDA_ABSOL(0x0BB7)
  BNE(m0EC1)
  LDA_ABSOL(0x0BB6)
  CMP_IMMED(0x06)
  BPL(m0EC1)
  STA_ZEROP(0xB8)
  DEC_ZEROP(0xB8)
m0EC1:
  LDA_ABSOL(0x0BB5)
  STA_ZEROP(0x37)
  LDA_IMMED(0x01)
  STA_ZEROP(0x80)
  /*draws the maze*/
  JSR_ABSOL(0x0ECD,m1735)

  LDA_IMMED(0x00)
  STA_ZEROP(0x82)
  STA_ZEROP(0x3E)
  STA_ZEROP(0x3F)
  STA_ZEROP(0x40)
  STA_ZEROP(0x43)
  /*play the game*/
  /*JSR_ABSOL(0x0EDC,m184E)*/
  address = m184E();
  switch (address)
  {
    case 0x0E05:
      goto m0E05;
      break;
    case 0x0EA4:
      goto m0EA4;
      break;
  }

  JSR_ABSOL(0x0EDF,m0DB7)
  LDA_ABSOL(0x0BB4)
  BPL(m0EC1)
  JSR_ABSOL(0x0EE7,m1FC5)
  LDX_IMMED(0xE5)
  LDA_IMMED(0x00)
  LDY_IMMED(0x53)
  JSR_ABSOL(0x0EF0,m1138)
  LDA_IMMED(0x13)
  JSR_ABSOL(0x0EF5,m224D)
  LDA_IMMED(0x50)
  JSR_ABSOL(0x0EFA,m1307)
  JMP_ABSOL(m0E05)
}

void m0E2E(void)
{
  LDA_IMMED(0x04)
  STA_ABSOL(0x2706)
  LDA_IMMED(0x00)
  STA_ZEROP(0x76)
  STA_ZEROP(0x79)
  STA_ZEROP(0x78)
  STA_ZEROP(0x77)
  LDA_IMMED(0x02)
  STA_ZEROP(0x75)
  LDA_ABSOL(0x0C03)
  BEQ(m0E47)
  SEI
m0E47:
  /*scroll text*/
  LDA_IMMED(0x02)
  JSR_ABSOL(0x0E4C,m1307)
  JSR_ABSOL(0x0E4F,m1341)
  /*space bar*/
  LDX_IMMED(0x9D)
  JSR_ABSOL(0x0E54,m13AA)

  BEQ(m0E5E)
  /*space bar pressed*/
  LDA_IMMED(0x00)
  STA_ABSOL(0x0CEB)
  CLI
  SEC
  RTS
m0E5E:
  /*escape*/
  LDX_IMMED(0x8F)
  JSR_ABSOL(0x0E63,m13AA)
  BEQ(m0E67)
  /*escape pressed*/
  CLC
  RTS
m0E67:
  /*check for F12 to quit*/
  regs.r[0] = 0x81;
  regs.r[1] = 0xE2;
  regs.r[2] = 0xFF;
  _kernel_swi(OS_Byte,&regs,&regs);
  quit = (regs.r[1] == 0xFF);
  if (quit)
    return;
  /*read joystick*/
  LDA_IMMED(0x80)
  LDX_IMMED(0x00)
  OSBYTE80
  TXA
  AND_IMMED(0x01)
  BEQ(m0E7B)
  LDA_IMMED(0x01)
  STA_ABSOL(0x0CEB)
  CLI
  SEC
  RTS
m0E7B:
  DEC_ZEROP(0x76)
  BNE(m0E47)
  DEC_ZEROP(0x75)
  BNE(m0E47)
  CLC
  RTS
}

void m0EFE(void)
{
  LDA_IMMED(0x00)
  STA_ZEROP(0x71)
  STX_ZEROP(0x70)
  TXA
  JSR_ABSOL(0x0F08,m13C0)
  TXA
  JSR_ABSOL(0x0F0C,m13C0)
  INC_ZEROP(0x70)
  LDX_IMMED(0x03)
  JSR_ABSOL(0x0F13,m0FB3)
  LDA_IMMED(0x00)
  STA_ZEROP(0x73)
  STY_ZEROP(0x72)
  TYA
  JSR_ABSOL(0x0F1D,m0FA7)
  TYA
  JSR_ABSOL(0x0F21,m0FA7)
  TYA
  JSR_ABSOL(0x0F25,m0FA7)
  TYA
  JSR_ABSOL(0x0F29,m0FA7)
  LDX_IMMED(0x07)
  JSR_ABSOL(0x0F2E,m13E0)
  CLC
  LDA_ZEROP(0x70)
  ADC_ZEROP(0x72)
  STA_ZEROP(0x70)
  LDA_ZEROP(0x71)
  ADC_ZEROP(0x73)
  STA_ZEROP(0x71)
  CLC
  LDA_ZEROP(0x71)
  ADC_IMMED(0x30)
  STA_ZEROP(0x71)
  LDA_IMMED(0x00)
  STA_ZEROP(0x74)
  STA_ZEROP(0x77)
  LDY_IMMED(0x17)
  LDA_ZEROP(0x47)
  BEQ(m0FA1)
m0F4E:
  LDA_ZEROP(0x47)
  LSR
  PHP
  LSR
  PLP
  ROL
  STA_ZEROP(0x78)
  TAX
  LDA_ABSXP(0x2FD7)
  TAY
  JSR_ABSOL(0x0F5F,m0FBB)
  LDA_ZEROP(0x47)
  LSR
  PHP
  LSR
  PLP
  ROL
  TAX
  LDA_ABSXP(0x2FCF)
  TAY
  JSR_ABSOL(0x0F6E,m0FBB)
m0F6E:
  LDA_ZEROP(0x47)
  LSR
  LSR
  TAX
  LDA_ABSXP(0x2FCB)
  TAY
  JSR_ABSOL(0x0F7A,m0FBB)
  LDA_ZEROP(0x77)
  AND_IMMED(0x07)
  CMP_IMMED(0x06)
  BMI(m0F6E)
  LDA_ZEROP(0x47)
  LSR
  TAX
  LDA_ABSXP(0x2FCF)
  TAY
  JSR_ABSOL(0x0F8D,m0FBB)
  LDA_ZEROP(0x47)
  LSR
  TAX
  LDA_ABSXP(0x2FD7)
  TAY
  JSR_ABSOL(0x0F98,m0FBB)
  INC_ZEROP(0x74)
  LDA_ZEROP(0x74)
  CMP_IMMED(0x03)
  BNE(m0F4E)
  RTS
m0FA1:
  STA_POSTI(0x70)
  DEY
  BPL(m0FA1)
  RTS
}

void m0FA7(void)
{
  CLC
  ADC_ZEROP(0x72)
  STA_ZEROP(0x72)
  LDA_ZEROP(0x73)
  ADC_IMMED(0x00)
  STA_ZEROP(0x73)
  RTS
}

void m0FB3(void)
{
m0FB3:
  ASL_ZEROP(0x70)
  ROL_ZEROP(0x71)
  DEX
  BNE(m0FB3)
  RTS
}

void m0FBB(void)
{
  LDA_IMMED(0x2F)
  STA_ZEROP(0x76)
  LDX_ZEROP(0x74)
  LDA_ABSXP(0x2FC8)
  STA_ZEROP(0x75)
  LDA_POSTI(0x75)
  LDY_ZEROP(0x77)
  STA_POSTI(0x70)
  INC_ZEROP(0x77)
  RTS
}

void m0FCF(void)
{
  LDA_IMMED(0x00)
  STA_ZEROP(0x31)
  /*JMP_ABSOL(m13FB)*/
  m13FB();
}

int m0FD6(void)
{
  LDA_IMMED(0x00)
  STA_ZEROP(0x30)
  LDX_IMMED(0xFF)
m0FDC:
  INX
  LDA_ZEROP(0x32)
  AND_IMMED(0x0F)
  CMP_ABSXP(0x0C14)
  BNE(m0FDC)
  CPX_IMMED(0x00)
  BEQ(m1013)
  LDA_IMMED(0x01)
  STA_ABSOX(0x0C0D)
  STX_ZEROP(0x77)
  TXA
  CLC
  ADC_IMMED(0x36)
  TAX
  JSR_ABSOL(0x0FF9,m0FCF)
  LDA_IMMED(0x05)
  JSR_ABSOL(0x0FFE,m224D)
  LDX_ZEROP(0x77)
  CPX_IMMED(0x06)
  BEQ(m100A)
  LDA_ABSXP(0x2737)
  /*JMP_ABSOL(m2349)*/
  m2349();
  return (0);
m100A:
  JSR_ABSOL(0x100D,m12D8)
  INC_ABSOL(0x0BB4)
  /*JMP_ABSOL(m23A8)*/
  m23A8();
  return (0);
m1013:
  LDX_IMMED(0x00)
m1015:
  INX
  LDA_ABSXP(0x0C0D)
  CMP_IMMED(0x01)
  BNE(m1024)
  LDA_IMMED(0xFF)
  STA_ABSOX(0x0C0D)
  INC_ZEROP(0x4E)
m1024:
  CPX_ZEROP(0x6F)
  BNE(m1015)
  CPX_ZEROP(0x4E)
  BEQ(m1042)
  LDA_ZEROP(0x3F)
  EOR_IMMED(0xFF)
  STA_ZEROP(0x3F)
  INC_ZEROP(0x3F)
  LDA_ZEROP(0x40)
  EOR_IMMED(0xFF)
  STA_ZEROP(0x40)
  INC_ZEROP(0x40)
  JSR_ABSOL(0x103F,m1718)
  /*JMP_ABSOL(m19BB)*/
/*m19BB:*/
  /*moved*/
  LDA_IMMED(0x00)
  STA_ZEROP(0x3F)
  STA_ZEROP(0x40)
  /*JMP_ABSOL(m1718)*/
  m1718();
  return (0);
m1042:
  INC_ABSOL(0x0BB4)
  INC_ABSOL(0x0BB6)
  LDA_ABSOL(0x0BB6)
  CMP_IMMED(0x0A)
  BNE(m1057)
  LDA_IMMED(0x00)
  STA_ABSOL(0x0BB6)
  INC_ABSOL(0x0BB7)
m1057:
  LDA_ZEROP(0x32)
  CLC
  ADC_IMMED(0x10)
  AND_IMMED(0x30)
  STA_ZEROP(0x32)
  LDA_IMMED(0x12)
  JSR_ABSOL(0x1065,m224D)
  LDA_IMMED(0x32)
  JSR_ABSOL(0x106A,m1307)
  PLA
  PLA
  PLA
  PLA
  /*JMP_ABSOL(m0EA4)*/
  return (0x0EA4);
}

void m1071(void)
{
  LDA_IMMED(0x00)
  STA_ABSOL(0x0A00)
m1076:
  LDX_ABSOL(0x0A00)
  LDA_ABSXP(0x0CCA)
  STA_ZEROP(0x72)
  LDA_IMMED(0x00)
  STA_ZEROP(0x73)
  LDX_IMMED(0x03)
  JSR_ABSOL(0x1087,m13E0)
  LDA_ZEROP(0x73)
  CLC
  ADC_IMMED(0xC0)
  STA_ZEROP(0x73)
  LDY_ABSOL(0x0A40)
m1091:
  TYA
  AND_IMMED(0x03)
  TAX
  LDA_POSTI(0x72)
  STA_ABSOX(0x0CE6)
  INY
  TYA
  AND_IMMED(0x03)
  BNE(m1091)
  LDA_IMMED(0x00)
  STA_ZEROP(0x33)
m10A4:
  LDA_IMMED(0x00)
  STA_ZEROP(0x40)
  LDY_IMMED(0x00)
m10AA:
  LDA_IMMED(0x00)
  STA_ZEROP(0x31)
  LDX_ZEROP(0x40)
  LDA_ABSXP(0x0CE6)
  AND_IMMED(0x80)
  BEQ(m10BD)
  LDA_ABSOL(0x2706)
  ASL
  STA_ZEROP(0x31)
m10BD:
  LDA_ABSXP(0x0CE6)
  AND_IMMED(0x40)
  BEQ(m10CB)
  LDA_ABSOL(0x2706)
  ORA_ZEROP(0x31)
  STA_ZEROP(0x31)
m10CB:
  ASL_ABSOX(0x0CE6)
  ASL_ABSOX(0x0CE6)
  LDA_ZEROP(0x31)
  STA_POSTI(0x70)
  INY
  STA_POSTI(0x70)
  INC_ZEROP(0x40)
  INY
  CPY_IMMED(0x08)
  BNE(m10AA)
  LDA_IMMED(0x08)
  JSR_ABSOL(0x10E4,m13C0)
  INC_ZEROP(0x33)
  LDA_ZEROP(0x33)
  CMP_IMMED(0x04)
  BNE(m10A4)
  INC_ABSOL(0x0A00)
  LDA_ABSOL(0x0A00)
  CMP_ZEROP(0x8F)
  BNE(m10F7)
  RTS
m10F7:
  JMP_ABSOL(m1076)
}

void m10FA(void)
{
  LDA_IMMED(0x14)
  STA_ZEROP(0x8F)
  LDA_IMMED(0x00)
  STA_ABSOL(0x0A40)
  JSR_ABSOL(0x1106,m1071)
  LDA_IMMED(0x04)
  STA_ABSOL(0x0A40)
  /*JMP_ABSOL(m1071)*/
  m1071();
  RTS
}

void m110E(void)
{
m110E:
  LDA_ABSXP(0x2600)
  BEQ(m111A)
  OSWRCH
  INX
  JMP_ABSOL(m110E)
m111A:
  RTS
}

void m111B(void)
{
  LDA_ABSXP(0x2500)
  TAY
  INX
m1120:
  LDA_ABSXP(0x2500)
  BMI(m111Aa)
  STA_ABSOY(0x0CCA)
  INY
  INX
  JMP_ABSOL(m1120)
m111Aa:
  RTS
}

void m112D(void)
{
  LDY_IMMED(0x13)
  LDA_IMMED(0x00)
m1131:
  STA_ABSOY(0x0CCA)
  DEY
  BPL(m1131)
  RTS
}

void m1138(void)
{
  STA_ZEROP(0x70)
  STY_ZEROP(0x71)
  JSR_ABSOL(0x113F,m112D)
  JSR_ABSOL(0x1142,m111B)
  /*JMP_ABSOL(m10FA)*/
  m10FA();
  RTS
}

void m1145(void)
{
  LDA_IMMED(0x04)
  STA_ABSOL(0x2706)
  /*controls*/
  LDX_IMMED(0x00)
  JSR_ABSOL(0x114F,m110E)
  JSR_ABSOL(0x1152,m0D80)
  JSR_ABSOL(0x1155,m0D9C)
  LDA_IMMED(0x10)
  LDY_IMMED(0x30)
  LDX_IMMED(0x7C)
  JSR_ABSOL(0x115E,m1138)
  LDA_IMMED(0x80)
  LDY_IMMED(0x37)
  LDX_IMMED(0xF2)
  JSR_ABSOL(0x1167,m1138)
  LDA_IMMED(0x04)
  STA_ABSOL(0x2706)
  LDX_IMMED(0x87)
  LDY_IMMED(0x6E)
  LDA_IMMED(0x80)
  /*JMP_ABSOL(m1138)*/
  m1138();
  RTS
}

void m1175(void)
{
  LDA_IMMED(0x04)
  STA_ABSOL(0x2706)
  LDX_IMMED(0x00)
m117C:
  STX_ZEROP(0x79)
  LDY_ABSXP(0x2568)
  LDA_ABSXP(0x255E)
  STA_ZEROP(0x78)
  LDA_ABSXP(0x2572)
  LDX_ZEROP(0x78)
  JSR_ABSOL(0x118E,m1138)
  LDX_ZEROP(0x79)
  INX
  LDA_IMMED(0x10)
  STA_ABSOL(0x2706)
  CPX_IMMED(0x09)
  BNE(m117C)
  LDA_IMMED(0x44)
  STA_ABSOL(0x0AC0)
  LDA_IMMED(0x90)
  STA_ABSOL(0x0A80)
  LDA_IMMED(0x01)
  STA_ABSOL(0x0A40)
  LDX_IMMED(0x00)
  STX_ZEROP(0x31)
m11AD:
  STX_ZEROP(0x79)
  LDA_ABSXP(0x2557)
  STA_ABSOL(0x2F00)
  LDX_IMMED(0x00)
  JSR_ABSOL(0x11BA,m13FB)
  LDA_ABSOL(0x0A80)
  CLC
  ADC_IMMED(0x80)
  STA_ABSOL(0x0A80)
  LDA_ABSOL(0x0AC0)
  ADC_IMMED(0x07)
  STA_ABSOL(0x0AC0)
  LDX_ZEROP(0x79)
  INX
  CPX_IMMED(0x07)
  BNE(m11AD)
  LDA_IMMED(0x00)
  STA_ABSOL(0x0A40)
  LDA_IMMED(0x3D)
  STA_ABSOL(0x0AC0)
  LDA_IMMED(0x10)
  STA_ABSOL(0x0A80)
  LDA_IMMED(0x2E)
  STA_ABSOL(0x2F00)
  LDX_IMMED(0x00)
  JSR_ABSOL(0x11EB,m13FB)
  LDA_IMMED(0x3F)
  STA_ABSOL(0x0AC0)
  LDA_IMMED(0x90)
  STA_ABSOL(0x0A80)
  INC_ABSOL(0x2F00)
  LDX_IMMED(0x00)
  JSR_ABSOL(0x11FD,m13FB)
  RTS
}

void m11FE(void)
{
  LDA_IMMED(0x01)
  STA_ABSOL(0x2706)
  JSR_ABSOL(0x1206,m12BF)
  JSR_ABSOL(0x1209,m1FC5)
  LDA_IMMED(0x00)
  STA_ZEROP(0x4E)
  STA_ZEROP(0x31)
  /*ENTERING ...*/
  LDX_IMMED(0xB8)
  JSR_ABSOL(0x1214,m110E)
  JSR_ABSOL(0x1217,m112D)
  LDX_IMMED(0xDE)
  JSR_ABSOL(0x121C,m111B)
  LDA_ABSOL(0x0BB7)
  BEQ(m1227)
  CLC
  ADC_IMMED(0x10)
  STA_ABSOL(0x0CD6)
m1227:
  LDA_ABSOL(0x0BB6)
  CLC
  ADC_IMMED(0x10)
  STA_ABSOL(0x0CD7)
  LDA_IMMED(0x00)
  STA_ZEROP(0x70)
  LDA_IMMED(0x49)
  STA_ZEROP(0x71)
  JSR_ABSOL(0x123B,m10FA)
  /*FIND THE FOLLOWING*/
  LDX_IMMED(0xC6)
  JSR_ABSOL(0x1240,m110E)
  LDA_IMMED(0xB0)
  STA_ABSOL(0x0A80)
  LDA_IMMED(0x60)
  STA_ABSOL(0x0AC0)
  LDA_ABSOL(0x0BB7)
  BNE(m1256)
  LDA_ABSOL(0x0BB6)
  CMP_IMMED(0x06)
  BMI(m1258)
m1256:
  LDA_IMMED(0x05)
m1258:
  TAX
  DEX
m125A:
  STX_ZEROP(0x79)
  LDA_ABSXP(0x2700)
  STA_ABSOL(0x2F00)
  LDA_IMMED(0x14)
  JSR_ABSOL(0x1267,m1307)
  LDX_IMMED(0x00)
  JSR_ABSOL(0x126C,m13FB)
  LDA_ABSOL(0x0AC0)
  CLC
  ADC_IMMED(0x05)
  STA_ABSOL(0x0AC0)
  LDA_IMMED(0x0D)
  JSR_ABSOL(0x127A,m224D)
  LDX_ZEROP(0x79)
  DEX
  BPL(m125A)
  LDA_IMMED(0x64)
  JSR_ABSOL(0x1284,m1307)
  /*JMP_ABSOL(m0DB7)*/
  m0DB7();
  RTS
}

void m1287(void)
{
  /*read joystick*/
  LDA_IMMED(0x80)
  LDX_IMMED(0x01)
  OSBYTE80
  CPY_IMMED(0x40)
  BCC(m129B)
  CPY_IMMED(0xC0)
  BCC(m129D)
  DEC_ZEROP(0x3F)
  JMP_ABSOL(m129D)
m129B:
  INC_ZEROP(0x3F)
m129D:
  /*read joystick*/
  LDA_IMMED(0x80)
  LDX_IMMED(0x02)
  OSBYTE80
  CPY_IMMED(0x40)
  BCC(m12B1)
  CPY_IMMED(0xC0)
  BCC(m12B3)
  DEC_ZEROP(0x40)
  JMP_ABSOL(m12B3)
m12B1:
  INC_ZEROP(0x40)
m12B3:
  /*read joystick*/
  LDA_IMMED(0x80)
  LDX_IMMED(0x00)
  OSBYTE80
  TXA
  AND_IMMED(0x01)
  TAX
  RTS
}

void m12BF(void)
{
  LDA_ABSOL(0x0BB7)
  BNE(m12CB)
  LDX_ABSOL(0x0BB6)
  CPX_IMMED(0x06)
  BMI(m12CD)
m12CB:
  LDX_IMMED(0x05)
m12CD:
  STX_ZEROP(0x6F)
  LDX_IMMED(0xFF)
m12D1:
  JSR_ABSOL(0x12D4,m12DD)
  CPX_ZEROP(0x6F)
  BMI(m12D1)
  m12D8();
}

void m12D8(void)
{
  LDX_IMMED(0x05)
  /*JMP_ABSOL(m12DD)*/
  m12DD();
}

void m12DD(void)
{
  INX
  STX_ABSOL(0x0A00)
m12E1:
  JSR_ABSOL(0x12E4,m1DB5)
  LDA_ZEROP(0x44)
  AND_IMMED(0x0F)
  LDX_ABSOL(0x0A00)
  STA_ABSOX(0x0C14)
  LDA_IMMED(0x00)
  STA_ABSOX(0x0C0D)
  LDY_IMMED(0xFF)
m12F5:
  INY
  CPY_ABSOL(0x0A00)
  BEQ(m1306)
  LDA_ABSYP(0x0C14)
  CMP_ABSXP(0x0C14)
  BEQ(m12E1)
  JMP_ABSOL(m12F5)
m1306:
  RTS
}

void m1307(void)
{
  /*delay*/
  STA_ZEROP(0x4C)
m1309:
  JSR_ABSOL(0x130C,m0DDD)
  DEC_ZEROP(0x4C)
  BNE(m1309)
  RTS
}

void m1311(void)
{
  LDA_ABSOL(0x0C66)
  BNE(m1340)
  LDA_IMMED(0x00)
  STA_ZEROP(0x30)
  LDA_ABSOL(0x0A10)
  SEC
  SBC_ABSOL(0x0A0E)
  BPL(m1328)
  EOR_IMMED(0xFF)
  CLC
  ADC_IMMED(0x01)
m1328:
  CMP_IMMED(0x03)
  BPL(m1340)
  LDA_ABSOL(0x0A50)
  SEC
  SBC_ABSOL(0x0A4E)
  BPL(m133A)
  EOR_IMMED(0xFF)
  CLC
  ADC_IMMED(0x01)
m133A:
  CMP_IMMED(0x04)
  BPL(m1340)
  INC_ZEROP(0x30)
m1340:
  RTS
}

void m1341(void)
{
  LDA_ZEROP(0x78)
  CMP_IMMED(0x18)
  BNE(m1354)
  LDX_IMMED(0x17)
m1349:
  LDA_IMMED(0x00)
  STA_ABSOX(0x7B90)
  STA_ABSOX(0x7E10)
  DEX
  BPL(m1349)
m1354:
  LDY_IMMED(0x7B)
  STY_ZEROP(0x71)
  LDA_ZEROP(0x78)
  CLC
  ADC_IMMED(0x90)
  STA_ZEROP(0x70)
  JSR_ABSOL(0x1362,m112D)
  LDY_IMMED(0x00)
  LDX_ZEROP(0x77)
m1366:
  /*IN*/
  LDA_ABSXP(0x2678)
  STA_ABSOY(0x0CCA)
  INX
  TXA
  AND_IMMED(0x3F)
  TAX
  INY
  CPY_IMMED(0x0A)
  BNE(m1366)
  JSR_ABSOL(0x1379,m0DDD)
  LDA_IMMED(0x00)
  STA_ABSOL(0x0A40)
  LDA_IMMED(0x0B)
  STA_ZEROP(0x8F)
  JSR_ABSOL(0x1385,m1071)
  INC_ZEROP(0x71)
  LDA_IMMED(0x20)
  JSR_ABSOL(0x138C,m13C0)
  LDA_IMMED(0x04)
  STA_ABSOL(0x0A40)
  JSR_ABSOL(0x1394,m1071)
  LDA_ZEROP(0x78)
  SEC
  SBC_IMMED(0x08)
  AND_IMMED(0x1F)
  STA_ZEROP(0x78)
  CMP_IMMED(0x18)
  BNE(m13A9)
  INC_ZEROP(0x77)
  LDA_ZEROP(0x77)
  AND_IMMED(0x3F)
  STA_ZEROP(0x77)
m13A9:
  RTS
}

void m13AA(void)
{
  LDA_IMMED(0x81)
  LDY_IMMED(0xFF)
  OSBYTE81
  CPX_IMMED(0x00)
  RTS
}

void m13B4(void)
{
  LDX_IMMED(0x0B)
m13B6:
  LDA_ABSXP(0x2727)
  OSWRCH
  DEX
  BPL(m13B6)
  RTS
}

void m13C0(void)
{
  CLC
  ADC_ZEROP(0x70)
  STA_ZEROP(0x70)
  LDA_ZEROP(0x71)
  ADC_IMMED(0x00)
  STA_ZEROP(0x71)
  RTS
}

void m13D8(void)
{
m13D8:
  ASL_ZEROP(0x70)
  ROL_ZEROP(0x71)
  DEX
  BNE(m13D8)
  RTS
}

void m13E0(void)
{
m13E0:
  ASL_ZEROP(0x72)
  ROL_ZEROP(0x73)
  DEX
  BNE(m13E0)
  RTS
}

void m13E8(void)
{
  LDA_ABSXP(0x0D00)
  STA_ZEROP(0x70)
  LDA_ABSXP(0x0D40)
  STA_ZEROP(0x71)
  LDA_ABSXP(0x0BC0)
  STA_ABSOL(0x0C1B)
  /*JMP_ABSOL(m1404)*/
  m1404();
  RTS
}

void m13FB(void)
{
  JSR_ABSOL(0x13FE,m239D)
  LDA_ABSXP(0x0A40)
  STA_ABSOL(0x0C1B)
  m1404();
}

void m1404(void)
{
  LDY_ZEROP(0x31)
  LDA_ABSYP(0x0CF0)
  STA_ZEROP(0x74)
  LDA_ABSYP(0x0CF8)
  STA_ZEROP(0x75)
  LDY_ABSXP(0x2F00)
  LDA_ABSYP(0x2F80)
  STA_ABSOL(0x1435) /*self modifying code*/
  LDA_ABSYP(0x2F40)
  STA_ABSOL(0x1436) /*self modifying code*/
  LDA_ABSOL(0x0C1B)
  AND_IMMED(0x01)
  BNE(m143A)
  LDX_IMMED(0x00)
  LDY_IMMED(0x00)
m142A:
  JSR_ABSOL(0x142D,m1434)
  INY
  INX
  CPY_IMMED(0x18)
  BNE(m142A)
  RTS
m143A:
  /*moved*/
  LDX_IMMED(0x00)
  LDY_IMMED(0x04)
m143E:
  JSR_ABSOL(0x1441,m1434)
  INY
  INX
  TXA
  AND_IMMED(0x03)
  BNE(m1451)
  TXA
  CLC
  ADC_IMMED(0x04)
  TAX
  TYA
  ADC_IMMED(0x04)
  TAY
m1451:
  CPY_IMMED(0x98)
  BEQ(m1464)
  CPX_IMMED(0x18)
  BNE(m143E)
  LDX_IMMED(0x04)
  LDY_IMMED(0x80)
  INC_ZEROP(0x71)
  INC_ZEROP(0x71)
  JMP_ABSOL(m143E)
m1464:
  RTS
}

void m1434(void)
{
  /*LDA_ABSXP(0xFFFF)*/
  address = (memory[0x1436] << 8) | memory[0x1435];
  LDA_ABSXP(address)
  /*JMP_INDIR(m0074)*/
  ADDRESSOFINDIRECT(0x0074)
  switch (address)
  {
    case 0x1465:
      EOR_POSTI(0x70)
      STA_POSTI(0x70)
      break;
    case 0x146A:
      STA_ZEROP(0x72)
      LDA_POSTI(0x70)
      ORA_ZEROP(0x30)
      STA_ZEROP(0x30)
      LDA_ZEROP(0x72)
      EOR_POSTI(0x70)
      STA_POSTI(0x70)
      break;
    case 0x1479:
      LDA_IMMED(0x00)
      STA_POSTI(0x70)
      break;
    case 0x147E:
      m147E();
      break;
    case 0x14A8:
      LDA_POSTI(0x70)
      ORA_ZEROP(0x30)
      STA_ZEROP(0x30)
      break;
    case 0x14AF:
      m14AF();
      break;
    default:
      printf("Address not found:&%X\n",address);
      break;
  }
}

void m147E(void)
{
  LDA_POSTI(0x70)
  ORA_ZEROP(0x30)
  STA_ZEROP(0x30)
  LDA_POSTI(0x70)
  AND_IMMED(0x55)
  CMP_IMMED(0x40)
  BEQ(m149D)
  CMP_IMMED(0x45)
  BEQ(m14A3)
  LDA_POSTI(0x70)
  AND_IMMED(0xAA)
  CMP_IMMED(0x80)
  BEQ(m149D)
  CMP_IMMED(0x8A)
  BEQ(m14A3)
  RTS
m149D:
  LDA_IMMED(0x01)
  STA_ABSOL(0x0C07)
  RTS
m14A3:
  LDA_IMMED(0x01)
  STA_ZEROP(0x4A)
  RTS
}

void m14AF(void)
{
  CMP_POSTI(0x70)
  BNE(m14B4)
  RTS
m14B4:
  LDA_IMMED(0x01)
  STA_ZEROP(0x30)
}

void m14B9(void)
{
  LDA_ZEROP(0x46)
  ASL
  ADC_ZEROP(0x46)
  STA_ZEROP(0x47)
  LDA_ZEROP(0x45)
  LSR
  CLC
  ADC_ZEROP(0x47)
  TAY
  LDA_IMMED(0x00)
  STA_ZEROP(0x71)
  LDA_ZEROP(0x32)
  STA_ZEROP(0x70)
  LDX_IMMED(0x04)
  JSR_ABSOL(0x14D4,m13D8)
  LDA_ZEROP(0x32)
  JSR_ABSOL(0x14D9,m13C0)
  LDA_ZEROP(0x32)
  JSR_ABSOL(0x14DE,m13C0)
  LDA_IMMED(0xE0)
  JSR_ABSOL(0x14E3,m13C0)
  LDA_ZEROP(0x32)
  CMP_IMMED(0x10)
  BPL(m14F3)
  LDA_IMMED(0x27)
  CLC
  ADC_ZEROP(0x71)
  STA_ZEROP(0x71)
  JMP_ABSOL(m14FA)
m14F3:
  LDA_IMMED(0x02)
  CLC
  ADC_ZEROP(0x71)
  STA_ZEROP(0x71)
m14FA:
  LDA_POSTI(0x70)
  STA_ZEROP(0x47)
  STA_ZEROP(0x72)
  LDA_ZEROP(0x45)
  AND_IMMED(0x01)
  BNE(m150D)
  LDA_ZEROP(0x47)
  AND_IMMED(0x0F)
  STA_ZEROP(0x47)
  RTS
m150D:
  LDA_ZEROP(0x47)
  LSR
  LSR
  LSR
  LSR
  STA_ZEROP(0x47)
  RTS
}

void m1516(void)
{
  LDA_IMMED(0x00)
  STA_ZEROP(0x3B)
  LDA_IMMED(0x00)
  STA_ZEROP(0x45)
m151E:
  LDA_IMMED(0x00)
  STA_ZEROP(0x46)
  LDA_IMMED(0x03)
  STA_ZEROP(0x3C)
m1526:
  JSR_ABSOL(0x1529,m14B9)
  AND_IMMED(0x08)
  LDY_ZEROP(0x46)
  STA_ABSOY(0x0C07)
  LDY_ZEROP(0x3C)
  LDX_ZEROP(0x3B)
  JSR_ABSOL(0x1537,m0EFE)
  LDA_ZEROP(0x46)
  CMP_IMMED(0x05)
  BEQ(m1565)
  LDA_IMMED(0x04)
  STA_ZEROP(0x3D)
  LDA_ZEROP(0x47)
  AND_IMMED(0x02)
  PHP
  LDA_IMMED(0x00)
  STA_ZEROP(0x47)
  PLP
  BEQ(m1551)
  LDA_IMMED(0x03)
  STA_ZEROP(0x47)
m1551:
  INC_ZEROP(0x3C)
  LDY_ZEROP(0x3C)
  LDX_ZEROP(0x3B)
  JSR_ABSOL(0x155A,m0EFE)
  DEC_ZEROP(0x3D)
  BNE(m1551)
  INC_ZEROP(0x3C)
  INC_ZEROP(0x46)
  JMP_ABSOL(m1526)
m1565:
  JSR_ABSOL(0x1568,m1F6D)
  LDA_ZEROP(0x45)
  CMP_IMMED(0x05)
  BNE(m156F)
  RTS
m156F:
  LDA_IMMED(0x04)
  STA_ZEROP(0x4B)
  INC_ZEROP(0x3B)
m1575:
  LDA_IMMED(0x00)
  STA_ZEROP(0x46)
  LDA_IMMED(0x03)
  STA_ZEROP(0x3C)
m157D:
  LDA_IMMED(0x00)
  STA_ZEROP(0x47)
  LDY_ZEROP(0x46)
  LDA_ABSYP(0x0C07)
  BEQ(m158C)
  LDA_IMMED(0x0C)
  STA_ZEROP(0x47)
m158C:
  LDY_ZEROP(0x3C)
  LDX_ZEROP(0x3B)
  JSR_ABSOL(0x1593,m0EFE)
  LDA_ZEROP(0x46)
  CMP_IMMED(0x05)
  BEQ(m15B5)
  LDA_IMMED(0x04)
  STA_ZEROP(0x3D)
  LDA_IMMED(0x00)
  STA_ZEROP(0x47)
m15A1:
  INC_ZEROP(0x3C)
  LDY_ZEROP(0x3C)
  LDX_ZEROP(0x3B)
  JSR_ABSOL(0x15AA,m0EFE)
  DEC_ZEROP(0x3D)
  BNE(m15A1)
  INC_ZEROP(0x3C)
  INC_ZEROP(0x46)
  JMP_ABSOL(m157D)
m15B5:
  JSR_ABSOL(0x15B8,m1F1C)
  INC_ZEROP(0x3B)
  DEC_ZEROP(0x4B)
  BNE(m1575)
  INC_ZEROP(0x45)
  JMP_ABSOL(m151E)
}

int m15C3(void)
{
  JSR_ABSOL(0x15C6,m24D3)
  LDA_IMMED(0x00)
  STA_ZEROP(0x3F)
  STA_ZEROP(0x40)
  STA_ABSOL(0x0C01)
  LDA_ABSOL(0x0CEB)
  BNE(m15DA)
  JSR_ABSOL(0x15D7,m1609)
  JMP_ABSOL(m15DD)
m15DA:
  JSR_ABSOL(0x15DD,m1287)
m15DD:
  LDA_ABSOL(0x0C98)
  BNE(m15EA)
  CPX_IMMED(0x00)
  BEQ(m15EA)
  LDA_IMMED(0x01)
  STA_ZEROP(0x3E)
m15EA:
  STX_ABSOL(0x0C98)
  JSR_ABSOL(0x15F0,m24C7)
  BEQ(m15F9)
  PLA
  PLA
  PLA
  PLA
  /*JMP_ABSOL(m0E05)*/
  return (0x0E05);
m15F9:
  LDX_IMMED(0xC8)
  JSR_ABSOL(0x15FE,m24C9)
  BNE(m1601)
  /*RTS*/
  return (0);
m1601:
  LDX_IMMED(0xCC)
  JSR_ABSOL(0x1606,m24C9)
  BEQ(m1601)
  /*RTS*/
  return (0);
}

void m1609(void)
{
m1609:
  LDY_ABSOL(0x0C01)
  LDA_ABSYP(0x27DC)
  TAX
  JSR_ABSOL(0x1613,m24C9)
  BEQ(m1628)
  LDY_ABSOL(0x0C01)
  LDA_ZEROP(0x3F)
  CLC
  ADC_ABSYP(0x27D8)
  STA_ZEROP(0x3F)
  LDA_ZEROP(0x40)
  CLC
  ADC_ABSYP(0x27D4)
  STA_ZEROP(0x40)
m1628:
  INC_ABSOL(0x0C01)
  LDA_ABSOL(0x0C01)
  CMP_IMMED(0x04)
  BNE(m1609)
  LDX_IMMED(0x9A)
  /*JMP_ABSOL(m24C9)*/
  m24C9();
}

void m166A(void)
{
  JSR_ABSOL(0x166D,m239D)
  LDA_ZEROP(0x70)
  STA_ABSOX(0x0D00)
  LDA_ZEROP(0x71)
  STA_ABSOX(0x0D40)
  LDA_ZEROP(0x33)
  BMI(m1685)
  BEQ(m1692)
  LDA_IMMED(0x08)
  JSR_ABSOL(0x1682,m13C0)
  JMP_ABSOL(m1692)
m1685:
  SEC
  LDA_ZEROP(0x70)
  SBC_IMMED(0x08)
  STA_ZEROP(0x70)
  LDA_ZEROP(0x71)
  SBC_IMMED(0x00)
  STA_ZEROP(0x71)
m1692:
  LDA_ZEROP(0x34)
  BMI(m16A9)
  BEQ(m16BD)
  LDA_ABSXP(0x0A40)
  AND_IMMED(0x01)
  BNE(m16BD)
  LDA_IMMED(0x80)
  JSR_ABSOL(0x16A4,m13C0)
  INC_ZEROP(0x71)
  INC_ZEROP(0x71)
  RTS
m16A9:
  LDA_ABSXP(0x0A40)
  AND_IMMED(0x01)
  BEQ(m16BD)
  SEC
  LDA_ZEROP(0x70)
  SBC_IMMED(0x80)
  STA_ZEROP(0x70)
  LDA_ZEROP(0x71)
  SBC_IMMED(0x02)
  STA_ZEROP(0x71)
m16BD:
  RTS
}

void m16BE(void)
{
  LDA_ZEROP(0x33)
  CLC
  ADC_ABSXP(0x0A00)
  STA_ABSOX(0x0A00)
  LDA_ABSXP(0x0A40)
  STA_ABSOX(0x0BC0)
  CLC
  ADC_ZEROP(0x34)
  STA_ABSOX(0x0A40)
  JSR_ABSOL(0x16D6,m166A)
  LDA_ZEROP(0x70)
  STA_ABSOX(0x0A80)
  LDA_ZEROP(0x71)
  STA_ABSOX(0x0AC0)
  RTS
}

void m16E1(void)
{
  LDA_ZEROP(0x3F)
  BNE(m16F6)
  LDA_ZEROP(0x40)
  BNE(m16F6)
  LDA_ZEROP(0x35)
  ASL
  ASL
  CLC
  ADC_IMMED(0x02)
  STA_ABSOL(0x2F11)
  /*JMP_ABSOL(m1718)*/
  m1718();
  RTS
m16F6:
  LDX_ZEROP(0x3F)
  LDY_ZEROP(0x40)
  JSR_ABSOL(0x16FD,m226A)
  STA_ZEROP(0x35)
  ASL
  ASL
  STA_ABSOL(0x2F10)
  STA_ZEROP(0x3D)
  LDA_ZEROP(0x36)
  LSR
  LSR
  CMP_IMMED(0x03)
  BNE(m1710)
  LDA_IMMED(0x01)
m1710:
  CLC
  INC_ZEROP(0x3D)
  ADC_ZEROP(0x3D)
  STA_ABSOL(0x2F11)
  m1718();
}

void m1718(void)
{
  LDA_ZEROP(0x3F)
  STA_ZEROP(0x33)
  LDA_ZEROP(0x40)
  STA_ZEROP(0x34)
  LDX_IMMED(0x10)
  JSR_ABSOL(0x1725,m16BE)
  LDX_IMMED(0x11)
  /*JMP_ABSOL(m16BE)*/
  m16BE();
}

void m172A(void)
{
  STX_ZEROP(0x37)
  LDA_ABSXP(0x27D0)
  CLC
  ADC_ZEROP(0x32)
  STA_ZEROP(0x32)
  RTS
}

void m1735(void)
{
  INC_ZEROP(0xCF)
  LDA_ZEROP(0xCF)
  CMP_IMMED(0x18)
  BNE(m1745)
  LDA_ZEROP(0xB8)
  CMP_IMMED(0x05)
  BEQ(m1745)
  INC_ZEROP(0xB8)
m1745:
  JSR_ABSOL(0x1748,m1FBA)
  LDA_ZEROP(0x80)
  BNE(m1751)
  LDA_IMMED(0x19)
  JSR_ABSOL(0x1751,m2349)
m1751:
  JSR_ABSOL(0x1754,m1516)
  LDX_ZEROP(0x37)
  STX_ABSOL(0x0BB5)
  LDA_ABSXP(0x27BC)
  STA_ABSOL(0x0A10)
  STA_ABSOL(0x0A11)
  LDA_ABSXP(0x2553)
  STA_ZEROP(0x35)
  LDA_ABSXP(0x254F)
  STA_ABSOL(0x2F10)
  LDA_ABSXP(0x254B)
  STA_ABSOL(0x2F11)
  LDA_IMMED(0x03)
  STA_ZEROP(0x36)
  LDA_ABSXP(0x27B8)
  STA_ABSOL(0x0A50)
  CLC
  ADC_IMMED(0x02)
  STA_ABSOL(0x0A51)
  LDA_ABSXP(0x27CC)
  STA_ABSOL(0x0A90)
  LDA_ABSXP(0x27C8)
  STA_ABSOL(0x0AD0)
  LDA_ABSXP(0x27C4)
  STA_ABSOL(0x0A91)
  LDA_ABSXP(0x27C0)
  STA_ABSOL(0x0AD1)
  LDX_IMMED(0x07)
m179D:
  LDA_IMMED(0x00)
  STA_ABSOX(0x0C56)
  LDA_IMMED(0xFF)
  STA_ABSOX(0x0C4E)
  DEX
  BPL(m179D)
  LDA_IMMED(0x00)
  STA_ZEROP(0x42)
  STA_ABSOL(0x0BB8)
  JSR_ABSOL(0x17B4,m1CFF)
  JSR_ABSOL(0x17B7,m1E8E)
  JSR_ABSOL(0x17BA,m24A1)
  LDA_IMMED(0x01)
  STA_ZEROP(0x41)
  /*JMP_ABSOL(m1FC5)*/
  m1FC5();
}

int m184E(void)
{
m184E:
  LDA_ZEROP(0x36)
  AND_IMMED(0x03)
  CMP_IMMED(0x03)
  BNE(m189A)
  LDA_ZEROP(0x82)
  BNE(m189A)
  /*sound channel 1*/
  LDA_IMMED(0x80)
  LDX_IMMED(0xFA)
  OSBYTE80
  CPX_IMMED(0x0F)
  BNE(m1882)
  LDA_ABSOL(0x2F11)
  AND_IMMED(0x03)
  CMP_IMMED(0x01)
  BEQ(m1875)
  CMP_IMMED(0x03)
  BEQ(m187D)
  JMP_ABSOL(m1882)
m1875:
  LDA_IMMED(0x07)
  JSR_ABSOL(0x187A,m224D)
  JMP_ABSOL(m1882)
m187D:
  LDA_IMMED(0x08)
  JSR_ABSOL(0x1882,m224D)
m1882:
  LDA_IMMED(0x01)
  STA_ZEROP(0x31)
  LDX_IMMED(0x10)
  JSR_ABSOL(0x188B,m13FB)
  LDX_IMMED(0x11)
  JSR_ABSOL(0x1890,m13FB)
  LDA_ABSOL(0x2F10)
  STA_ZEROP(0x8E)
  LDA_ABSOL(0x2F11)
  STA_ZEROP(0x8D)
m189A:
  JSR_ABSOL(0x189D,m2473)
  LDA_ZEROP(0x36)
  AND_IMMED(0x03)
  BNE(m18C9)
  LDX_IMMED(0x14)
  LDA_IMMED(0x00)
  STA_ZEROP(0x31)
m18A9:
  STX_ZEROP(0x39)
  LDA_ABSXP(0x0C53)
  CMP_IMMED(0x02)
  BMI(m18C2)
  CMP_IMMED(0x05)
  BPL(m18C2)
  CLC
  ADC_IMMED(0x38)
  STA_ABSOX(0x2F00)
  INC_ABSOX(0x0C53)
  JSR_ABSOL(0x18C2,m13FB)
m18C2:
  LDX_ZEROP(0x39)
  INX
  CPX_IMMED(0x2C)
  BNE(m18A9)
m18C9:
  LDX_IMMED(0x07)
m18CB:
  STX_ZEROP(0x39)
  JSR_ABSOL(0x18D0,m1B38)
  JSR_ABSOL(0x18D3,m1B5D)
  LDX_ZEROP(0x39)
  DEX
  BPL(m18CB)
  LDA_ZEROP(0x43)
  BEQ(m18F1)
  LDA_IMMED(0x32)
  STA_ABSOL(0x0BBC)
  LDX_IMMED(0x0C)
  LDA_IMMED(0x04)
  JSR_ABSOL(0x18E8,m2523)
  LDA_IMMED(0x00)
  STA_ZEROP(0x43)
  LDA_IMMED(0x14)
  JSR_ABSOL(0x18F1,m224D)
m18F1:
  LDA_ZEROP(0x82)
  BEQ(m18F8)
  JMP_ABSOL(m1964)
m18F8:
  /*JSR_ABSOL(0x18FB,m15C3)*/
  address = m15C3();
  if (address == 0x0E05)
    return (address);

  JSR_ABSOL(0x18FE,m1AFB)
  LDA_ZEROP(0x41)
  BNE(m194F)
  STA_ZEROP(0x30)
  LDA_ZEROP(0x36)
  AND_IMMED(0x03)
  CMP_IMMED(0x03)
  BNE(m1964)
  LDA_IMMED(0x04)
  STA_ZEROP(0x31)
  LDX_IMMED(0x10)
  JSR_ABSOL(0x1915,m13FB)
  LDX_IMMED(0x11)
  JSR_ABSOL(0x191A,m13FB)
  LDA_ZEROP(0x30)
  BNE(m1961)
  JSR_ABSOL(0x1921,m1311)
  LDA_ZEROP(0x30)
  BNE(m1961)
  JSR_ABSOL(0x1928,m16E1)
  LDA_IMMED(0x00)
  STA_ABSOL(0x0C07)
  STA_ZEROP(0x4A)
  LDX_IMMED(0x10)
  LDA_IMMED(0x03)
  STA_ZEROP(0x31)
  JSR_ABSOL(0x1938,m13FB)
  LDX_IMMED(0x11)
  JSR_ABSOL(0x193D,m13FB)
  LDA_ZEROP(0x4A)
  BEQ(m1947)
  /*JSR_ABSOL(0x1944,m0FD6)*/
  address = m0FD6();
  if (address == 0x0EA4)
    return (address);
  JSR_ABSOL(0x1947,m23A8)
m1947:
  LDA_ABSOL(0x0C07)
  BEQ(m1952)
  JMP_ABSOL(m1A38)
m194F:
  JMP_ABSOL(m184E)
m1952:
  LDA_ZEROP(0x30)
  AND_IMMED(0xC0)
  BEQ(m1964)
  JSR_ABSOL(0x195B,m24F6)
  JSR_ABSOL(0x195E,m1A9E)
  JMP_ABSOL(m1964)
m1961:
  JSR_ABSOL(0x1964,m19AA)
m1964:
  LDA_IMMED(0x07)
  STA_ZEROP(0x39)
m1968:
  LDX_ZEROP(0x39)
  JSR_ABSOL(0x196D,m1BD6)
  DEC_ZEROP(0x39)
  BPL(m1968)
  LDA_ZEROP(0x82)
  BNE(m197B)
  JSR_ABSOL(0x1978,m1C9C)
  JSR_ABSOL(0x197B,m2298)
m197B:
  LDA_IMMED(0x07)
  STA_ZEROP(0x39)
m197F:
  LDX_ZEROP(0x39)
  JSR_ABSOL(0x1984,m1B90)
  DEC_ZEROP(0x39)
  BPL(m197F)
  /*sound channel 2*/
  LDA_IMMED(0x80)
  LDX_IMMED(0xF9)
  OSBYTE80
  CPX_IMMED(0x0F)
  BEQ(m19C4)
  JMP_ABSOL(m17C1)
m19C4:
  LDA_IMMED(0x09)
  JSR_ABSOL(0x19C9,m224D)
  LDA_IMMED(0x0A)
  JSR_ABSOL(0x19CE,m224D)
  /*JMP_ABSOL(m17C1)*/
m17C1:
  /*moved*/
  LDA_ZEROP(0x82)
  CMP_IMMED(0x01)
  BNE(m17C8)
  return (0);
m17C8:
  LDA_ZEROP(0x82)
  BEQ(m17CE)
  DEC_ZEROP(0x82)
m17CE:
  JSR_ABSOL(0x17D1,m0DDD)
  INC_ZEROP(0x36)
  LDA_ZEROP(0x36)
  AND_IMMED(0x0F)
  STA_ZEROP(0x36)
  BNE(m17E3)
  LDA_ABSOL(0x0C66)
  BEQ(m17E3)
  JSR_ABSOL(0x17E3,m2432)
m17E3:
  LDA_ZEROP(0x36)
  AND_IMMED(0x03)
  BNE(m1811)
  LDY_ABSOL(0x0C96)
  LDA_ABSYP(0x2714)
  LDX_IMMED(0x0D)
  JSR_ABSOL(0x17F4,m2523)
  LDA_ABSYP(0x2711)
  INX
  JSR_ABSOL(0x17FB,m2523)
  LDA_ABSYP(0x270E)
  INX
  JSR_ABSOL(0x1802,m2523)
  INC_ABSOL(0x0C96)
  LDA_ABSOL(0x0C96)
  CMP_IMMED(0x03)
  BNE(m1811)
  LDA_IMMED(0x00)
  STA_ABSOL(0x0C96)
m1811:
  LDA_ZEROP(0x36)
  AND_IMMED(0x03)
  BNE(m183C)
  LDX_IMMED(0x14)
  LDA_IMMED(0x00)
  STA_ZEROP(0x31)
m181D:
  STX_ZEROP(0x39)
  LDA_ABSXP(0x0C53)
  CMP_IMMED(0x02)
  BMI(m1835)
  LDA_ABSXP(0x0C53)
  CMP_IMMED(0x05)
  BNE(m1832)
  LDA_IMMED(0x00)
  STA_ABSOX(0x0C53)
m1832:
  JSR_ABSOL(0x1835,m13FB)
m1835:
  LDX_ZEROP(0x39)
  INX
  CPX_IMMED(0x2C)
  BNE(m181D)
m183C:
  JSR_ABSOL(0x183F,m19D1)
  LDA_ZEROP(0x36)
  AND_IMMED(0x03)
  CMP_IMMED(0x03)
  BNE(m184E)
  LDA_ZEROP(0x82)
  BNE(m184E)
  JSR_ABSOL(0x184E,m24F6)
  goto m184E;
m1A38:
  LDA_IMMED(0x04)
  JSR_ABSOL(0x1A3D,m224D)
  LDA_ABSOL(0x2F10)
  STA_ZEROP(0x33)
  LDA_ABSOL(0x2F11)
  STA_ZEROP(0x34)
  LDA_IMMED(0x32)
  STA_ZEROP(0x36)
m1A4B:
  JSR_ABSOL(0x1A4E,m0DDD)
  LDA_ZEROP(0x36)
  AND_IMMED(0x0F)
  LDX_IMMED(0x08)
  JSR_ABSOL(0x1A57,m2523)
  LDA_IMMED(0x30)
  STA_ABSOL(0x2F10)
  LDA_IMMED(0x31)
  STA_ABSOL(0x2F11)
  LDA_IMMED(0x01)
  STA_ZEROP(0x31)
  LDX_IMMED(0x10)
  JSR_ABSOL(0x1A6A,m13E8)
  LDX_IMMED(0x11)
  JSR_ABSOL(0x1A6F,m13E8)
  JSR_ABSOL(0x1A72,m0DDD)
  LDA_ZEROP(0x33)
  STA_ABSOL(0x2F10)
  LDA_ZEROP(0x34)
  STA_ABSOL(0x2F11)
  LDX_IMMED(0x10)
  JSR_ABSOL(0x1A81,m13E8)
  LDX_IMMED(0x11)
  JSR_ABSOL(0x1A86,m13E8)
  DEC_ZEROP(0x36)
  BPL(m1A4B)
  LDA_IMMED(0x02)
  STA_ZEROP(0x31)
  LDX_IMMED(0x10)
  JSR_ABSOL(0x1A93,m13E8)
  LDX_IMMED(0x11)
  JSR_ABSOL(0x1A98,m13E8)
  JSR_ABSOL(0x1A9B,m1A9E)
  JMP_ABSOL(m1964)
}


void m19D1(void)
{
  LDX_IMMED(0x14)
m19D3:
  STX_ZEROP(0x39)
  LDA_ABSXP(0x0C53)
  CMP_IMMED(0x01)
  BNE(m1A30)
  LDA_ABSXP(0x2F00)
  CMP_IMMED(0x2A)
  BNE(m19F6)
  TXA
  AND_IMMED(0x0F)
  CMP_ZEROP(0x36)
  BNE(m19F6)
  JSR_ABSOL(0x19ED,m202F)
  JSR_ABSOL(0x19F0,m204B)
  JSR_ABSOL(0x19F3,m2041)
  JMP_ABSOL(m1A30)
m19F6:
  LDA_ABSXP(0x2F00)
  CMP_IMMED(0x2B)
  BNE(m1A16)
  TXA
  AND_IMMED(0x07)
  STA_ZEROP(0x74)
  LDA_ZEROP(0x36)
  AND_IMMED(0x07)
  CMP_ZEROP(0x74)
  BNE(m1A16)
  JSR_ABSOL(0x1A0D,m202F)
  JSR_ABSOL(0x1A10,m20D4)
  JSR_ABSOL(0x1A13,m2041)
  JMP_ABSOL(m1A30)
m1A16:
  LDA_ABSXP(0x2F00)
  CMP_IMMED(0x2C)
  BNE(m1A30)
  TXA
  AND_IMMED(0x0F)
  CMP_ZEROP(0x36)
  BNE(m1A30)
  JSR_ABSOL(0x1A27,m202F)
  JSR_ABSOL(0x1A2A,m2134)
  JSR_ABSOL(0x1A2D,m2041)
  JMP_ABSOL(m1A30)
m1A30:
  LDX_ZEROP(0x39)
  INX
  CPX_IMMED(0x2C)
  BNE(m19D3)
  RTS
}


void m1A9E(void)
{
  DEC_ABSOL(0x0BB4)
  JSR_ABSOL(0x1AA4,m23A8)
  LDA_IMMED(0xC8)
  STA_ABSOL(0x0B14)
  LDA_IMMED(0x02)
  JSR_ABSOL(0x1AAE,m224D)
  LDA_IMMED(0x03)
  JSR_ABSOL(0x1AB3,m224D)
  LDA_IMMED(0x00)
  STA_ZEROP(0x31)
  LDA_ABSOL(0x0D11)
  SEC
  SBC_IMMED(0x08)
  STA_ABSOL(0x0A90)
  LDA_ABSOL(0x0D51)
  SBC_IMMED(0x00)
  STA_ABSOL(0x0AD0)
  LDA_ABSOL(0x0BD1)
  STA_ABSOL(0x0A50)
  STA_ABSOL(0x0A51)
  LDA_ABSOL(0x0D11)
  CLC
  ADC_IMMED(0x10)
  STA_ABSOL(0x0A91)
  LDA_ABSOL(0x0D51)
  ADC_IMMED(0x00)
  STA_ABSOL(0x0AD1)
  LDA_IMMED(0x33)
  STA_ABSOL(0x2F10)
  LDA_IMMED(0x34)
  STA_ABSOL(0x2F11)
  LDX_IMMED(0x10)
  JSR_ABSOL(0x1AF1,m13FB)
  LDX_IMMED(0x11)
  JSR_ABSOL(0x1AF6,m13FB)
  LDA_IMMED(0x96)
  STA_ZEROP(0x82)
  RTS
}

void m1AFB(void)
{
  LDA_IMMED(0x00)
  STA_ZEROP(0x41)
  LDA_ABSOL(0x0A10)
  CMP_IMMED(0x02)
  BPL(m1B0B)
  LDX_IMMED(0x01)
  JMP_ABSOL(m1B2A)
m1B0B:
  CMP_IMMED(0x4C)
  BMI(m1B14)
  LDX_IMMED(0x00)
  JMP_ABSOL(m1B2A)
m1B14:
  LDA_ABSOL(0x0A50)
  CMP_IMMED(0x07)
  BPL(m1B20)
  LDX_IMMED(0x02)
  JMP_ABSOL(m1B2A)
m1B20:
  CMP_IMMED(0x36)
  BMI(m1B29)
  LDX_IMMED(0x03)
  JMP_ABSOL(m1B2A)
m1B29:
  RTS
m1B2A:
  JSR_ABSOL(0x1B2D,m172A)
  JSR_ABSOL(0x1B30,m1FBA)
  LDA_IMMED(0x0C)
  OSWRCH
  /*JMP_ABSOL(m1735)*/
  m1735();
}

void m1B38(void)
{
  LDA_ABSXP(0x0C56)
  BEQ(m1B5C) /*(m1B29)*/
  LDA_ABSXP(0x0C2E)
  STA_ZEROP(0x70)
  LDA_ABSXP(0x0C36)
  STA_ZEROP(0x71)
  LDY_IMMED(0x01)
m1B49:
  LDA_POSTI(0x70)
  EOR_IMMED(0x2A)
  STA_POSTI(0x70)
  DEY
  BPL(m1B49)
  LDA_ABSXP(0x0C4E)
  BPL(m1B5C)
  LDA_IMMED(0x00)
  STA_ABSOX(0x0C56)
m1B5C:
  RTS
}

void m1B5D(void)
{
  LDA_IMMED(0x00)
  STA_ZEROP(0x30)
  LDA_ABSXP(0x0C4E)
  BMI(m1B8C) /*(m1B29)*/
  LDA_IMMED(0x01)
  STA_ABSOX(0x0C56)
  LDA_ABSXP(0x0C1E)
  STA_ZEROP(0x70)
  LDA_ABSXP(0x0C26)
  STA_ZEROP(0x71)
  LDY_IMMED(0x01)
m1B77:
  LDA_POSTI(0x70)
  AND_IMMED(0xAA)
  ORA_ZEROP(0x30)
  STA_ZEROP(0x30)
  LDA_POSTI(0x70)
  EOR_IMMED(0x2A)
  STA_POSTI(0x70)
  DEY
  BPL(m1B77)
  LDA_ZEROP(0x30)
  BNE(m1B8D)
m1B8C:
  RTS
m1B8D:
  /*JMP_ABSOL(m21B7)*/
/*m21B7:*/
  /*moved*/
  LDA_ZEROP(0x82)
  BNE(m21DB)
  LDA_ABSXP(0x0C3E)
  SEC
  SBC_ABSOL(0x0A10)
  BMI(m21DB)
  CMP_IMMED(0x03)
  BPL(m21DB)
  LDA_ABSXP(0x0C46)
  SEC
  SBC_ABSOL(0x0A50)
  BMI(m21DB)
  CMP_IMMED(0x04)
  BPL(m21DB)
  JSR_ABSOL(0x21D8,m223B)
  /*JMP_ABSOL(m199C)*/
/*m199C:*/
  /*moved*/
  LDA_ZEROP(0x36)
  AND_IMMED(0x03)
  CMP_IMMED(0x03)
  BEQ(m19AA)
  JSR_ABSOL(0x19A7,m24F6)
  JMP_ABSOL(m19B8)
m19AA:
  m19AA();
  RTS
m19B8:
  /*JMP_ABSOL(m1A9E)*/
  m1A9E();
  RTS
m21DB:
  LDY_IMMED(0x14)
m21DD:
  LDA_ABSYP(0x0C53)
  CMP_IMMED(0x01)
  BNE(m2235)
  LDA_ABSXP(0x0C3E)
  SEC
  SBC_ABSYP(0x0A00)
  BMI(m2235)
  CMP_IMMED(0x03)
  BPL(m2235)
  LDA_ABSXP(0x0C46)
  SEC
  SBC_ABSYP(0x0A40)
  BMI(m2235)
  CMP_IMMED(0x02)
  BPL(m2235)
  LDA_IMMED(0x02)
  STA_ABSOY(0x0C53)
  CPX_IMMED(0x04)
  BPL(m2216)
  LDA_ABSYP(0x2F00)
  SEC
  SBC_IMMED(0x29)
  ASL
  JSR_ABSOL(0x2211,m2349)
  DEC_ZEROP(0x80)
  JMP_ABSOL(m221C)
m2216:
  LDA_ABSYP(0x2F00)
  JSR_ABSOL(0x221C,m2333)
m221C:
  LDX_ZEROP(0x39)
  JSR_ABSOL(0x2221,m223B)
  LDA_IMMED(0x64)
  STA_ABSOL(0x0B14)
  LDA_IMMED(0x02)
  JSR_ABSOL(0x222B,m224D)
  LDA_IMMED(0x03)
  JSR_ABSOL(0x2230,m224D)
  LDA_IMMED(0x11)
  /*JMP_ABSOL(m224D)*/
  m224D();
  RTS
m2235:
  INY
  CPY_IMMED(0x2C)
  BNE(m21DD)
  RTS
}

void m223B(void)
{
  LDA_ABSXP(0x0C1E)
  STA_ABSOX(0x0C2E)
  LDA_ABSXP(0x0C26)
  STA_ABSOX(0x0C36)
  JSR_ABSOL(0x224A,m1BC6)
  /*JMP_ABSOL(m1B38)*/
  m1B38();
  RTS
}

void m19AA(void)
{
  LDA_IMMED(0x00)
  STA_ZEROP(0x31)
  LDX_IMMED(0x10)
  JSR_ABSOL(0x19B3,m13FB)
  LDX_IMMED(0x11)
  JSR_ABSOL(0x19B8,m13FB)
/*m19B8:*/
  /*JMP_ABSOL(m1A9E)*/
  m1A9E();
  RTS
}

void m224D(void)
{
  STA_ZEROP(0x70)
  LDA_ABSOL(0x0CEA)
  BEQ(m2255)
  RTS
m2255:
  /*sound*/
  LDA_IMMED(0x00)
  STA_ZEROP(0x71)
  LDX_IMMED(0x03)
  JSR_ABSOL(0x225E,m13D8)
  LDX_ZEROP(0x70)
  LDA_IMMED(0x0B)
  ADC_ZEROP(0x71)
  TAY
  LDA_IMMED(0x07)
  /*JMP_ABSOL(mFFF1)*/
  OSWORD
}

void m1B90(void)
{
  LDA_ABSXP(0x0C4E)
  BMI(m1BC3) /*(m1B29)*/
  LDA_IMMED(0x00)
  STA_ZEROP(0x43)
  LDA_ABSXP(0x0C1E)
  STA_ZEROP(0x70)
  LDA_ABSXP(0x0C26)
  STA_ZEROP(0x71)
  LDY_IMMED(0x01)
m1BA5:
  LDA_POSTI(0x70)
  AND_IMMED(0xAA)
  CMP_IMMED(0xA0)
  BEQ(m1BC4)
  CMP_IMMED(0x80)
  BEQ(m1BC6)
  CMP_IMMED(0x82)
  BEQ(m1BC6)
  CMP_IMMED(0x8A)
  BEQ(m1BC6)
  DEY
  BPL(m1BA5)
  JSR_ABSOL(0x1BBF,m1CE1)
  LDA_ZEROP(0x41)
  BNE(m1BC6)
m1BC3:
  RTS
m1BC4:
  INC_ZEROP(0x43)
m1BC6:
  m1BC6();
}

void m1BC6(void)
{
  LDA_IMMED(0xFF)
  STA_ABSOX(0x0C4E)
  CPX_IMMED(0x04)
  BPL(m1BD2)
  DEC_ZEROP(0x42)
  RTS
m1BD2:
  DEC_ABSOL(0x0BB8)
  RTS
}

void m1BD6(void)
{
  LDY_ABSXP(0x0C4E)
  BMI(m1C31)
  LDA_ABSXP(0x0C1E)
  STA_ABSOX(0x0C2E)
  STA_ZEROP(0x70)
  LDA_ABSXP(0x0C26)
  STA_ABSOX(0x0C36)
  STA_ZEROP(0x71)
  LDA_ABSXP(0x0C3E)
  CLC
  ADC_ABSYP(0x27A0)
  STA_ABSOX(0x0C3E)
  LDA_ABSXP(0x0C46)
  CLC
  ADC_ABSYP(0x2798)
  STA_ABSOX(0x0C46)
  CLC
  LDA_ABSXP(0x0C1E)
  ADC_ABSYP(0x27B0)
  STA_ABSOX(0x0C1E)
  LDA_ABSXP(0x0C26)
  ADC_ABSYP(0x27A8)
  STA_ABSOX(0x0C26)
  LDA_ABSYP(0x2798)
  BEQ(m1C31)
  BPL(m1C32)
  LDA_ABSXP(0x0C46)
  AND_IMMED(0x01)
  BEQ(m1C31)
  LDA_ABSXP(0x0C1E)
  SEC
  SBC_IMMED(0x78)
  STA_ABSOX(0x0C1E)
  LDA_ABSXP(0x0C26)
  SBC_IMMED(0x02)
  STA_ABSOX(0x0C26)
m1C31:
  RTS
m1C32:
  LDA_ABSXP(0x0C46)
  AND_IMMED(0x01)
  BNE(m1C31)
  LDA_ABSXP(0x0C1E)
  CLC
  ADC_IMMED(0x78)
  STA_ABSOX(0x0C1E)
  LDA_ABSXP(0x0C26)
  ADC_IMMED(0x02)
  STA_ABSOX(0x0C26)
  RTS
}

void m1C4B(void)
{
  STX_ZEROP(0x74)
  LDA_ABSXP(0x0C46)
  AND_IMMED(0xFE)
  ASL
  ASL
  STA_ZEROP(0x70)
  LDA_IMMED(0x00)
  STA_ZEROP(0x71)
  LDA_ABSXP(0x0C46)
  AND_IMMED(0xFE)
  JSR_ABSOL(0x1C62,m13C0)
  LDX_IMMED(0x06)
  JSR_ABSOL(0x1C67,m13D8)
  LDX_ZEROP(0x74)
  LDA_ABSXP(0x0C46)
  AND_IMMED(0x01)
  BEQ(m1C75)
  LDA_IMMED(0x04)
  JSR_ABSOL(0x1C75,m13C0)
m1C75:
  LDA_ABSXP(0x0C3E)
  STA_ZEROP(0x72)
  LDA_IMMED(0x00)
  STA_ZEROP(0x73)
  LDX_IMMED(0x03)
  JSR_ABSOL(0x1C83,m13E0)
  LDA_IMMED(0x30)
  CLC
  ADC_ZEROP(0x71)
  STA_ZEROP(0x71)
  LDX_ZEROP(0x74)
  LDA_ZEROP(0x70)
  CLC
  ADC_ZEROP(0x72)
  STA_ABSOX(0x0C1E)
  LDA_ZEROP(0x71)
  ADC_ZEROP(0x73)
  STA_ABSOX(0x0C26)
  RTS
}

void m1C9C(void)
{
  LDA_ZEROP(0x3E)
  BEQ(m1CE0)
  LDA_IMMED(0x00)
  STA_ZEROP(0x3E)
  LDA_ZEROP(0x42)
  CMP_IMMED(0x04)
  BEQ(m1CE0)
  INC_ZEROP(0x42)
  LDX_IMMED(0xFF)
m1CAE:
  INX
  LDA_ABSXP(0x0C4E)
  BPL(m1CAE)
  LDA_ZEROP(0x35)
  STA_ABSOX(0x0C4E)
  TAY
  LDA_IMMED(0x00)
  STA_ABSOX(0x0C56)
  LDA_ABSOL(0x0A10)
  CLC
  ADC_ABSYP(0x2790)
  STA_ABSOX(0x0C3E)
  LDA_ABSOL(0x0A50)
  CLC
  ADC_ABSYP(0x2788)
  STA_ABSOX(0x0C46)
  JSR_ABSOL(0x1CD6,m1C4B)
  LDA_IMMED(0x00)
  JSR_ABSOL(0x1CDB,m224D)
  LDA_IMMED(0x01)
  JSR_ABSOL(0x1CE0,m224D)
m1CE0:
  RTS
}

void m1CE1(void)
{
  LDA_IMMED(0x00)
  STA_ZEROP(0x41)
  LDA_ABSXP(0x0C3E)
  CMP_IMMED(0x02)
  BMI(m1CFC)
  CMP_IMMED(0x4E)
  BPL(m1CFC)
  LDA_ABSXP(0x0C46)
  CMP_IMMED(0x07)
  BMI(m1CFC)
  CMP_IMMED(0x39)
  BPL(m1CFC)
  RTS
m1CFC:
  INC_ZEROP(0x41)
  RTS
}

void m1CFF(void)
{
  LDA_IMMED(0x32)
  STA_ABSOL(0x0AC0)
  LDA_IMMED(0x88)
  STA_ABSOL(0x0A80)
  LDA_IMMED(0x00)
  STA_ABSOL(0x0A40)
  LDA_IMMED(0x25)
  JSR_ABSOL(0x1D13,m1D90)
  LDA_IMMED(0x35)
  JSR_ABSOL(0x1D18,m1D90)
  LDA_IMMED(0x20)
  JSR_ABSOL(0x1D1D,m1D90)
  LDA_IMMED(0x36)
  JSR_ABSOL(0x1D22,m1D90)
  LDA_IMMED(0x37)
  JSR_ABSOL(0x1D27,m1D90)
  JSR_ABSOL(0x1D2A,m237C)
  JSR_ABSOL(0x1D2D,m23A8)
  LDA_IMMED(0x2A)
  STA_ABSOL(0x34BA)
  STA_ABSOL(0x34BD)
  LDA_IMMED(0x34)
  STA_ABSOL(0x0AC0)
  LDA_IMMED(0x08)
  STA_ABSOL(0x0A80)
  LDA_IMMED(0x36)
  JSR_ABSOL(0x1D44,m1D90)
  LDA_IMMED(0x20)
  JSR_ABSOL(0x1D49,m1D90)
  LDA_IMMED(0x20)
  JSR_ABSOL(0x1D4E,m1D90)
  LDA_IMMED(0x38)
  JSR_ABSOL(0x1D53,m1D90)
  JSR_ABSOL(0x1D56,m1DA3)
  LDA_ZEROP(0x32)
  AND_IMMED(0x0F)
  CMP_IMMED(0x09)
  BMI(m1D70)
  LDA_IMMED(0x21)
  JSR_ABSOL(0x1D63,m1D90)
  LDA_ZEROP(0x32)
  AND_IMMED(0x0F)
  CLC
  ADC_IMMED(0x17)
  JSR_ABSOL(0x1D6D,m1D90)
  JMP_ABSOL(m1D7D)
m1D70:
  JSR_ABSOL(0x1D73,m1DA3)
  LDA_ZEROP(0x32)
  AND_IMMED(0x0F)
  CLC
  ADC_IMMED(0x21)
  JSR_ABSOL(0x1D7D,m1D90)
m1D7D:
  JSR_ABSOL(0x1D80,m1DA3)
  LDA_ABSOL(0x0BB7)
  ADC_IMMED(0x20)
  JSR_ABSOL(0x1D88,m1D90)
  LDA_ABSOL(0x0BB6)
  ADC_IMMED(0x20)
  /*JMP_ABSOL(m1D90)*/
  m1D90();
}

void m1D90(void)
{
  STA_ABSOL(0x2F00)
  LDA_IMMED(0x02)
  STA_ZEROP(0x31)
  LDX_IMMED(0x00)
  JSR_ABSOL(0x1D9C,m13FB)
  DEC_ZEROP(0x31)
  LDX_IMMED(0x00)
  JSR_ABSOL(0x1DA3,m13FB)
  m1DA3();
}

void m1DA3(void)
{
  LDA_ABSOL(0x0A80)
  CLC
  ADC_IMMED(0x18)
  STA_ABSOL(0x0A80)
  LDA_ABSOL(0x0AC0)
  ADC_IMMED(0x00)
  STA_ABSOL(0x0AC0)
  RTS
}

void m1DB5(void)
{
  LDY_IMMED(0x08)
  LDA_IMMED(0x00)
  STA_ZEROP(0x44)
m1DBB:
  LDA_ZEROP(0x7A)
  AND_IMMED(0x48)
  ADC_IMMED(0x38)
  ASL
  ASL
  ROL_ZEROP(0x7C)
  ROL_ZEROP(0x7B)
  ROL_ZEROP(0x7A)
  LDA_ZEROP(0x7A)
  LSR
  LSR
  AND_IMMED(0x01)
  ASL_ZEROP(0x44)
  ORA_ZEROP(0x44)
  STA_ZEROP(0x44)
  DEY
  BNE(m1DBB)
  RTS
}

void m1DD9(void)
{
  STX_ZEROP(0x74)
  LDA_ABSXP(0x0A40)
  AND_IMMED(0xFE)
  ASL
  ASL
  STA_ZEROP(0x70)
  LDA_IMMED(0x00)
  STA_ZEROP(0x71)
  LDA_ABSXP(0x0A40)
  AND_IMMED(0xFE)
  JSR_ABSOL(0x1DF0,m13C0)
  LDX_IMMED(0x06)
  JSR_ABSOL(0x1DF5,m13D8)
  LDX_ZEROP(0x74)
  LDA_ABSXP(0x0A00)
  STA_ZEROP(0x72)
  LDA_IMMED(0x00)
  STA_ZEROP(0x73)
  LDX_IMMED(0x03)
  JSR_ABSOL(0x1E05,m13E0)
  LDA_IMMED(0x30)
  CLC
  ADC_ZEROP(0x71)
  STA_ZEROP(0x71)
  LDX_ZEROP(0x74)
  LDA_ZEROP(0x70)
  CLC
  ADC_ZEROP(0x72)
  STA_ABSOX(0x0A80)
  LDA_ZEROP(0x71)
  ADC_ZEROP(0x73)
  STA_ABSOX(0x0AC0)
  LDA_IMMED(0x07)
  RTS
}

void m1E20(void)
{
  LDX_ZEROP(0x3A)
  STA_ABSOX(0x2F14)
  m1E25();
}

void m1E25(void)
{
m1E25:
  JSR_ABSOL(0x1E28,m1DB5)
  LDX_ZEROP(0x3A)
  AND_IMMED(0x1F)
  STA_ABSOX(0x0A14)
  JSR_ABSOL(0x1E32,m1DB5)
  LDX_ZEROP(0x3A)
  AND_IMMED(0x0F)
  CLC
  ADC_ABSXP(0x0A14)
  ADC_IMMED(0x0F)
  STA_ABSOX(0x0A14)
  JSR_ABSOL(0x1E42,m1DB5)
  LDX_ZEROP(0x3A)
  AND_IMMED(0x1F)
  CLC
  ADC_IMMED(0x0F)
  STA_ABSOX(0x0A54)
  LDA_ABSOL(0x0A10)
  SBC_ABSXP(0x0A14)
  BPL(m1E56)
  EOR_IMMED(0xFF)
m1E56:
  CMP_IMMED(0x08)
  BPL(m1E69)
  LDA_ABSOL(0x0A50)
  SEC
  SBC_ABSXP(0x0A54)
  BPL(m1E65)
  EOR_IMMED(0xFF)
m1E65:
  CMP_IMMED(0x05)
  BMI(m1E25)
m1E69:
  TXA
  CLC
  ADC_IMMED(0x14)
  TAX
  STX_ZEROP(0x77)
  JSR_ABSOL(0x1E73,m1DD9)
  LDA_IMMED(0x00)
  STA_ZEROP(0x30)
  LDA_IMMED(0x05)
  STA_ZEROP(0x31)
  JSR_ABSOL(0x1E7E,m13FB)
  LDA_ZEROP(0x30)
  BNE(m1E25)
  LDA_IMMED(0x00)
  STA_ZEROP(0x31)
  LDX_ZEROP(0x77)
  JSR_ABSOL(0x1E8B,m13FB)
  INC_ZEROP(0x3A)
  RTS
}

void m1E8E(void)
{
  LDA_IMMED(0x2E)
  STA_ABSOL(0x2F0E)
  LDA_IMMED(0x2F)
  STA_ABSOL(0x2F0F)
  LDX_ZEROP(0xB8)
  LDA_ABSXP(0x2770)
  STA_ABSOL(0x0C66)
  LDA_ABSXP(0x2782)
  STA_ABSOL(0x0C62)
  LDA_ABSXP(0x277C)
  STA_ABSOL(0x0C63)
  LDA_ABSXP(0x2776)
  STA_ABSOL(0x0C64)
  LDX_IMMED(0x2B)
  LDA_IMMED(0x00)
m1EB6:
  STA_ABSOX(0x0C67)
  STA_ABSOX(0x0C86)
  STA_ABSOX(0x0C9E)
  DEX
  BPL(m1EB6)
  LDA_ABSOL(0x0C62)
  CLC
  ADC_ABSOL(0x0C63)
  ADC_ABSOL(0x0C64)
  STA_ZEROP(0x3A)
  STA_ZEROP(0x80)
  TAX
  DEX
  LDA_IMMED(0x01)
m1ED4:
  STA_ABSOX(0x0C67)
  DEX
  BPL(m1ED4)
  LDA_IMMED(0x00)
  STA_ZEROP(0x3A)
m1EDE:
  DEC_ABSOL(0x0C62)
  BMI(m1EEB)
  LDA_IMMED(0x2A)
  JSR_ABSOL(0x1EE8,m1E20)
  JMP_ABSOL(m1EDE)
m1EEB:
  DEC_ABSOL(0x0C63)
  BMI(m1EF8)
  LDA_IMMED(0x2B)
  JSR_ABSOL(0x1EF5,m1E20)
  JMP_ABSOL(m1EEB)
m1EF8:
  DEC_ABSOL(0x0C64)
  BMI(m1F05)
  LDA_IMMED(0x2C)
  JSR_ABSOL(0x1F02,m1E20)
  JMP_ABSOL(m1EF8)
m1F05:
  RTS
}

void m1F06(void)
{
  LDX_IMMED(0x00)
  JSR_ABSOL(0x1F0B,m1DD9)
  LDA_ABSOL(0x0A80)
  STA_ZEROP(0x70)
  LDA_ABSOL(0x0AC0)
  STA_ZEROP(0x71)
  LDY_IMMED(0x00)
  LDA_POSTI(0x70)
  STA_ZEROP(0x30)
  RTS
}

void m1F1C(void)
{
  LDX_ZEROP(0x32)
  LDA_ABSXP(0x0760)
  BNE(m1F24)
  RTS
m1F24:
  LDA_ZEROP(0x3B)
  CLC
  ADC_ZEROP(0x3B)
  ADC_ZEROP(0x3B)
  ADC_IMMED(0x01)
  STA_ABSOL(0x0A00)
  LDA_IMMED(0x2D)
  STA_ABSOL(0x2F00)
  LDA_IMMED(0x06)
  STA_ABSOL(0x0A40)
  LDA_IMMED(0x00)
  STA_ABSOL(0x0C93)
  STA_ABSOL(0x0C94)
m1F42:
  JSR_ABSOL(0x1F45,m1F06)
  BEQ(m1F52)
  LDA_ABSOL(0x0C93)
  EOR_IMMED(0x01)
  STA_ABSOL(0x0C93)
  JMP_ABSOL(m1F5A)
m1F52:
  LDA_ABSOL(0x0C93)
  BEQ(m1F5A)
  JSR_ABSOL(0x1F5A,m0DBF)
m1F5A:
  LDA_ZEROP(0x30)
  STA_ABSOL(0x0C94)
  INC_ABSOL(0x0A40)
  INC_ABSOL(0x0A40)
  LDA_ABSOL(0x0A40)
  CMP_IMMED(0x3A)
  BMI(m1F42)
/*m1F6C:*/
  RTS
}

void m1F6D(void)
{
  LDX_ZEROP(0x32)
  LDA_ABSXP(0x0760)
  BEQ(m1FB9) /*(m1F6C)*/
  LDA_ZEROP(0x3B)
  BEQ(m1FB9) /*(m1F6C)*/
  LDA_ZEROP(0x3B)
  CLC
  ADC_ZEROP(0x3B)
  ADC_ZEROP(0x3B)
  SEC
  SBC_IMMED(0x02)
  STA_ABSOL(0x0A00)
  LDA_IMMED(0x2D)
  STA_ABSOL(0x2F00)
  LDA_IMMED(0x06)
  STA_ABSOL(0x0A40)
m1F8F:
  JSR_ABSOL(0x1F92,m1F06)
  BEQ(m1FAC)
  LDA_IMMED(0x18)
  JSR_ABSOL(0x1F99,m13C0)
  LDA_ZEROP(0x70)
  STA_ABSOL(0x0A80)
  LDA_ZEROP(0x71)
  STA_ABSOL(0x0AC0)
  LDY_IMMED(0x00)
  LDA_POSTI(0x70)
  BNE(m1FAC)
  JSR_ABSOL(0x1FAC,m0DBF)
m1FAC:
  INC_ABSOL(0x0A40)
  INC_ABSOL(0x0A40)
  LDA_ABSOL(0x0A40)
  CMP_IMMED(0x3A)
  BMI(m1F8F)
m1FB9:
  RTS
}

void m1FBA(void)
{
  LDX_IMMED(0x0F)
  LDA_IMMED(0x00)
m1FBE:
  JSR_ABSOL(0x1FC1,m2523)
  DEX
  BPL(m1FBE)
  RTS
}

void m1FC5(void)
{
  LDX_IMMED(0x0F)
m1FC7:
  LDA_ABSXP(0x26F0)
  JSR_ABSOL(0x1FCD,m2523)
  DEX
  BPL(m1FC7)
  LDA_ABSOL(0x0BB6)
  AND_IMMED(0x07)
  LDX_IMMED(0x09)
  JSR_ABSOL(0x1FDA,m2523)
  LDA_ABSOL(0x0BB6)
  AND_IMMED(0x07)
  TAX
  LDA_ABSXP(0x2750)
  LDX_IMMED(0x08)
  /*JMP_ABSOL(m2523)*/
  m2523();
  RTS
}

void m1FF5(void)
{
  LDA_ABSXP(0x0BC0)
  STA_ABSOX(0x0A40)
  LDA_ABSXP(0x0D00)
  STA_ABSOX(0x0A80)
  LDA_ABSXP(0x0D40)
  STA_ABSOX(0x0AC0)
  LDA_ABSXP(0x0A00)
  SEC
  SBC_ZEROP(0x33)
  STA_ABSOX(0x0A00)
  RTS
}

void m2011(void)
{
  LDA_IMMED(0x00)
  STA_ZEROP(0x41)
  LDA_ABSXP(0x0A00)
  CMP_IMMED(0x04)
  BMI(m202C)
  CMP_IMMED(0x4A)
  BPL(m202C)
  LDA_ABSXP(0x0A40)
  CMP_IMMED(0x08)
  BMI(m202C)
  CMP_IMMED(0x37)
  BPL(m202C)
  RTS
m202C:
  INC_ZEROP(0x41)
  RTS
}

void m202F(void)
{
  LDA_IMMED(0x00)
  STA_ZEROP(0x31)
  STA_ZEROP(0x33)
  STA_ZEROP(0x34)
  JSR_ABSOL(0x203A,m13FB)
  LDX_ZEROP(0x39)
  LDA_IMMED(0x05)
  STA_ZEROP(0x31)
  RTS
}

void m2041(void)
{
  LDX_ZEROP(0x39)
  LDA_IMMED(0x00)
  STA_ZEROP(0x31)
  JSR_ABSOL(0x204A,m13FB)
  RTS
}

void m204B(void)
{
  JSR_ABSOL(0x204E,m2406)
  JSR_ABSOL(0x2051,m20B1)
  LDA_ABSOL(0x0C99)
  BEQ(m2057)
  RTS
m2057:
  LDX_ZEROP(0x39)
  JSR_ABSOL(0x205C,m1FF5)
  LDA_IMMED(0x00)
  STA_ZEROP(0x33)
  STA_ZEROP(0x34)
  LDA_ABSOL(0x0A10)
  CMP_ABSXP(0x0A00)
  BEQ(m2077)
  BMI(m2073)
  LDA_IMMED(0x01)
  STA_ZEROP(0x33)
  JMP_ABSOL(m2077)
m2073:
  LDA_IMMED(0xFF)
  STA_ZEROP(0x33)
m2077:
  JSR_ABSOL(0x207A,m20B1)
  LDA_ABSOL(0x0C99)
  BEQ(m2080)
  RTS
m2080:
  LDX_ZEROP(0x39)
  JSR_ABSOL(0x2085,m1FF5)
  LDA_IMMED(0x00)
  STA_ZEROP(0x33)
  STA_ZEROP(0x34)
  LDA_ABSOL(0x0A50)
  CLC
  ADC_IMMED(0x01)
  CMP_ABSXP(0x0A40)
  BEQ(m20A3)
  BMI(m209F)
  LDA_IMMED(0x01)
  STA_ZEROP(0x34)
  JMP_ABSOL(m20A3)
m209F:
  LDA_IMMED(0xFF)
  STA_ZEROP(0x34)
m20A3:
  JSR_ABSOL(0x20A6,m20B1)
  LDA_ABSOL(0x0C99)
  BEQ(m20AC)
  RTS
m20AC:
  LDX_ZEROP(0x39)
  /*JMP_ABSOL(m1FF5)*/
  m1FF5();
}

void m20B1(void)
{
  LDA_IMMED(0x00)
  STA_ABSOL(0x0C99)
  STA_ZEROP(0x30)
  JSR_ABSOL(0x20BB,m16BE)
  LDX_ZEROP(0x39)
  JSR_ABSOL(0x20C0,m13FB)
  LDA_ZEROP(0x30)
  BNE(m20D3)
  LDX_ZEROP(0x39)
  JSR_ABSOL(0x20C9,m2011)
  LDA_ZEROP(0x41)
  BNE(m20D3)
  LDA_IMMED(0x01)
  STA_ABSOL(0x0C99)
  RTS
m20D3:
  RTS
}

void m20D4(void)
{
  JSR_ABSOL(0x20D7,m1DB5)
  AND_IMMED(0x07)
  BEQ(m20F5)
  LDX_ZEROP(0x39)
  LDA_ABSXP(0x0C86)
  STA_ZEROP(0x33)
  LDA_ABSXP(0x0C9E)
  STA_ZEROP(0x34)
  JSR_ABSOL(0x20EA,m20B1)
  LDA_ABSOL(0x0C99)
  BEQ(m20F0)
  RTS
m20F0:
  LDX_ZEROP(0x39)
  JSR_ABSOL(0x20F5,m1FF5)
m20F5:
  JSR_ABSOL(0x20F8,m2107)
  JSR_ABSOL(0x20FB,m20B1)
  LDA_ABSOL(0x0C99)
  BEQ(m2101)
  RTS
m2101:
  LDX_ZEROP(0x39)
  JSR_ABSOL(0x2106,m1FF5)
  RTS
}

void m2107(void)
{
  JSR_ABSOL(0x210A,m1DB5)
  AND_IMMED(0x01)
  STA_ZEROP(0x33)
  JSR_ABSOL(0x2111,m1DB5)
  AND_IMMED(0x01)
  SEC
  SBC_ZEROP(0x33)
  STA_ZEROP(0x33)
  LDX_ZEROP(0x39)
  STA_ABSOX(0x0C86)
  JSR_ABSOL(0x2120,m1DB5)
  AND_IMMED(0x01)
  STA_ZEROP(0x34)
  JSR_ABSOL(0x2127,m1DB5)
  AND_IMMED(0x01)
  SEC
  SBC_ZEROP(0x34)
  STA_ZEROP(0x34)
  LDX_ZEROP(0x39)
  STA_ABSOX(0x0C9E)
  RTS
}

void m2134(void)
{
  LDA_ABSXP(0x0C86)
  BNE(m2158)
  LDA_ABSXP(0x0C9E)
  BNE(m2158)
  JSR_ABSOL(0x2141,m2107)
  JSR_ABSOL(0x2144,m20B1)
  LDA_ABSOL(0x0C99)
  BEQ(m214A)
  RTS
m214A:
  LDX_ZEROP(0x39)
  JSR_ABSOL(0x214F,m1FF5)
  LDA_IMMED(0x00)
  STA_ABSOX(0x0C86)
  STA_ABSOX(0x0C9E)
  RTS
m2158:
  LDA_ABSOL(0x0A10)
  CMP_ABSXP(0x0A00)
  BEQ(m216E)
  LDA_ABSOL(0x0A50)
  CLC
  ADC_IMMED(0x01)
  CMP_ABSXP(0x0A40)
  BEQ(m2187)
  JMP_ABSOL(m21A4)
m216E:
  LDA_ABSOL(0x0A50)
  CLC
  ADC_IMMED(0x01)
  CMP_ABSXP(0x0A40)
  BMI(m2180)
  LDA_IMMED(0x01)
  STA_ZEROP(0x34)
  JMP_ABSOL(m219A)
m2180:
  LDA_IMMED(0xFF)
  STA_ZEROP(0x34)
  JMP_ABSOL(m219A)
m2187:
  LDA_ABSOL(0x0A10)
  CMP_ABSXP(0x0A00)
  BMI(m2196)
  LDA_IMMED(0x01)
  STA_ZEROP(0x33)
  JMP_ABSOL(m219A)
m2196:
  LDA_IMMED(0xFF)
  STA_ZEROP(0x33)
m219A:
  LDA_ZEROP(0x33)
  STA_ABSOX(0x0C86)
  LDA_ZEROP(0x34)
  STA_ABSOX(0x0C9E)
m21A4:
  LDA_ABSXP(0x0C86)
  STA_ZEROP(0x33)
  LDA_ABSXP(0x0C9E)
  STA_ZEROP(0x34)
  JSR_ABSOL(0x21B1,m20B1)
  LDA_ABSOL(0x0C99)
  BEQ(m214A)
  RTS
}

void m226A(void)
{
  CPX_IMMED(0x00)
  BEQ(m228E)
  BPL(m227F)
  CPY_IMMED(0x00)
  BNE(m2277)
  LDA_IMMED(0x03)
  RTS
m2277:
  BPL(m227C)
  LDA_IMMED(0x06)
  RTS
m227C:
  LDA_IMMED(0x07)
  RTS
m227F:
  CPY_IMMED(0x00)
  BNE(m2286)
  LDA_IMMED(0x02)
  RTS
m2286:
  BPL(m228B)
  LDA_IMMED(0x04)
  RTS
m228B:
  LDA_IMMED(0x05)
  RTS
m228E:
  CPY_IMMED(0x00)
  BPL(m2295)
  LDA_IMMED(0x01)
  RTS
m2295:
  LDA_IMMED(0x00)
  RTS
}

void m2298(void)
{
  LDA_ABSOL(0x0BB8)
  CMP_IMMED(0x04)
  BPL(m22C5)
  JSR_ABSOL(0x22A2,m1DB5)
  AND_IMMED(0x07)
  CMP_ZEROP(0xB8)
  BPL(m22C5)
  JSR_ABSOL(0x22AB,m1DB5)
  AND_IMMED(0x0F)
  CLC
  ADC_IMMED(0x19)
  STA_ABSOL(0x0BB9)
  TAX
  LDA_ABSXP(0x0C53)
  CMP_IMMED(0x01)
  BNE(m22C5)
  LDA_ABSXP(0x0C86)
  BNE(m22C6)
  LDY_ABSXP(0x0C9E)
  BNE(m22C6)
m22C5:
  RTS
m22C6:
  LDY_ABSXP(0x0C9E)
  TAX
  JSR_ABSOL(0x22CD,m226A)
  STA_ABSOL(0x0BBA)
  LDY_IMMED(0x03)
m22D2:
  INY
  LDA_ABSYP(0x0C4E)
  BPL(m22D2)
  LDA_ABSYP(0x0C56)
  BNE(m22C5)
  STY_ABSOL(0x0BBB)
  LDA_IMMED(0x00)
  STA_ABSOY(0x0C56)
  LDA_ABSOL(0x0BBA)
  STA_ABSOY(0x0C4E)
  LDX_ABSOL(0x0BB9)
  TAY
  LDA_ABSYP(0x26DE)
  CLC
  ADC_ABSXP(0x0A40)
  LDY_ABSOL(0x0BBB)
  STA_ABSOY(0x0C46)
  LDY_ABSOL(0x0BBA)
  LDA_ABSYP(0x26E6)
  CLC
  ADC_ABSXP(0x0A00)
  LDY_ABSOL(0x0BBB)
  STA_ABSOY(0x0C3E)
  TYA
  TAX
  JSR_ABSOL(0x2311,m1C4B)
  INC_ABSOL(0x0BB8)
  LDA_ABSOL(0x0C03)
  BNE(m2323)
  /*set escape condition*/
  LDA_IMMED(0x7D)
  OSBYTE
  /*ack escape condition*/
  LDA_IMMED(0x7E)
  OSBYTE
m2323:
  LDA_IMMED(0x0B)
  /*JMP_ABSOL(m224D)*/
  m224D();
  RTS
}

void m2328(void)
{
  LDX_IMMED(0xFF)
m232A:
  INX
  LDA_ABSXP(0x0C67)
  BNE(m232A)
  STX_ZEROP(0x3A)
/*m2332:*/
  RTS
}

void m2333(void)
{
  TAY
  JSR_ABSOL(0x2337,m2328)
  CPX_IMMED(0x18)
  BPL(m2332a)
  TYA
  STA_ABSOX(0x2F14)
  LDA_IMMED(0x01)
  STA_ABSOX(0x0C67)
  STX_ZEROP(0x3A)
  /*JMP_ABSOL(m1E25)*/
  m1E25();
m2332a:
  RTS
}

void m2349(void)
{
  STA_ZEROP(0x76)
m234B:
  LDX_IMMED(0x00)
m234D:
  INC_ABSOX(0x0CEC)
  LDA_ABSXP(0x0CEC)
  CMP_IMMED(0x2A)
  BNE(m2361)
  LDA_IMMED(0x20)
  STA_ABSOX(0x0CEC)
  INX
  CPX_IMMED(0x04)
  BNE(m234D)
m2361:
  LDY_IMMED(0x02)
m2363:
  LDA_ABSYP(0x0CEC)
  CMP_IMMED(0x20)
  BNE(m2378)
  DEY
  BPL(m2363)
  LDA_IMMED(0x15)
  JSR_ABSOL(0x2372,m224D)
  INC_ABSOL(0x0BB4)
  JSR_ABSOL(0x2378,m23A8)
m2378:
  DEC_ZEROP(0x76)
  BNE(m234B)
  m237C();
}

void m237C(void)
{
  LDA_IMMED(0x33)
  STA_ABSOL(0x0AC0)
  LDA_IMMED(0x18)
  STA_ABSOL(0x0A80)
  STA_ABSOL(0x0A40)
  LDX_IMMED(0x03)
m238B:
  STX_ZEROP(0x76)
  LDA_ABSXP(0x0CEC)
  JSR_ABSOL(0x2393,m1D90)
  LDX_ZEROP(0x76)
  DEX
  BPL(m238B)
  LDA_IMMED(0x20)
  /*JMP_ABSOL(m1D90)*/
  m1D90();
}

void m239D(void)
{
  LDA_ABSXP(0x0A80)
  STA_ZEROP(0x70)
  LDA_ABSXP(0x0AC0)
  STA_ZEROP(0x71)
  RTS
}

void m23A8(void)
{
  LDA_IMMED(0x7B)
  STA_ABSOL(0x0AC0)
  LDA_IMMED(0x08)
  STA_ABSOL(0x0A80)
  STA_ABSOL(0x0A40)
  LDX_ABSOL(0x0BB4)
  BEQ(m23C8)
  BMI(m23D4)
m23BC:
  STX_ZEROP(0x76)
  LDA_IMMED(0x39)
  JSR_ABSOL(0x23C3,m1D90)
  LDX_ZEROP(0x76)
  DEX
  BNE(m23BC)
m23C8:
  JSR_ABSOL(0x23CB,m239D)
  LDY_IMMED(0x17)
  LDA_IMMED(0x00)
m23CF:
  STA_POSTI(0x70)
  DEY
  BPL(m23CF)
m23D4:
  LDA_IMMED(0x7D)
  STA_ABSOL(0x0AC0)
  LDA_IMMED(0x60)
  STA_ABSOL(0x0A80)
  LDX_IMMED(0x00)
m23E0:
  INX
  STX_ZEROP(0x76)
  LDA_ABSXP(0x0C0D)
  BEQ(m23FF)
  LDA_ABSXP(0x2F36)
  JSR_ABSOL(0x23EE,m1D90)
  SEC
  LDA_ABSOL(0x0A80)
  SBC_IMMED(0x38)
  STA_ABSOL(0x0A80)
  LDA_ABSOL(0x0AC0)
  SBC_IMMED(0x00)
  STA_ABSOL(0x0AC0)
m23FF:
  LDX_ZEROP(0x76)
  CPX_ZEROP(0x6F)
  BMI(m23E0)
  RTS
}

void m2406(void)
{
  LDA_ABSOL(0x0A10)
  CMP_ABSXP(0x0A00)
  BEQ(m241B)
  BMI(m2417)
  LDA_IMMED(0x01)
  STA_ZEROP(0x33)
  JMP_ABSOL(m241B)
m2417:
  LDA_IMMED(0xFF)
  STA_ZEROP(0x33)
m241B:
  LDA_ABSOL(0x0A50)
  CLC
  ADC_IMMED(0x01)
  CMP_ABSXP(0x0A40)
  BEQ(m2431)
  BMI(m242D)
  LDA_IMMED(0x01)
  STA_ZEROP(0x34)
  RTS
m242D:
  LDA_IMMED(0xFF)
  STA_ZEROP(0x34)
m2431:
  RTS
}

void m2432(void)
{
  DEC_ABSOL(0x0C66)
  BNE(m245F)
  LDA_IMMED(0x00)
  STA_ABSOL(0x0BBC)
  STA_ABSOL(0x0A0E)
  STA_ABSOL(0x0A4E)
  STA_ABSOL(0x0A8E)
  STA_ABSOL(0x0A0F)
  LDA_IMMED(0x30)
  STA_ABSOL(0x0ACE)
  LDA_IMMED(0x32)
  STA_ABSOL(0x0ACF)
  LDA_IMMED(0x80)
  STA_ABSOL(0x0A8F)
  LDA_IMMED(0x02)
  STA_ABSOL(0x0A4F)
  JSR_ABSOL(0x245F,m2460)
m245F:
  RTS
}

void m2460(void)
{
  LDA_ABSOL(0x0C66)
  BNE(m245Fa)
  LDA_IMMED(0x00)
  STA_ZEROP(0x31)
  LDX_IMMED(0x0E)
  JSR_ABSOL(0x246E,m13FB)
  LDX_IMMED(0x0F)
  /*JMP_ABSOL(m13FB)*/
  m13FB();
  RTS
m245Fa:
  RTS
}

void m2473(void)
{
  LDA_ZEROP(0x36)
  AND_IMMED(0x01)
  BEQ(m245Fb)
  LDA_ABSOL(0x0C66)
  BNE(m245Fb)
  LDA_ABSOL(0x0BBC)
  BEQ(m2487)
  DEC_ABSOL(0x0BBC)
  RTS
m2487:
  LDA_IMMED(0x07)
  LDX_IMMED(0x0C)
  JSR_ABSOL(0x248E,m2523)
  JSR_ABSOL(0x2491,m2460)
  LDX_IMMED(0x0E)
  JSR_ABSOL(0x2496,m2406)
  JSR_ABSOL(0x2499,m16BE)
  LDX_IMMED(0x0F)
  JSR_ABSOL(0x249E,m16BE)
  /*JMP_ABSOL(m2460)*/
  m2460();
  RTS
m245Fb:
  RTS
}

void m24A1(void)
{
  LDX_ZEROP(0x6F)
m24A3:
  JSR_ABSOL(0x24A3,m24AD)
  LDX_ZEROP(0x39)
  DEX
  BPL(m24A3)
  LDX_IMMED(0x06)
  m24AD();
}

void m24AD(void)
{
  STX_ZEROP(0x39)
  LDA_ZEROP(0x32)
  AND_IMMED(0x0F)
  CMP_ABSXP(0x0C14)
  BNE(m24C6)
  LDA_ABSXP(0x0C0D)
  BNE(m24C6)
  TXA
  CLC
  ADC_IMMED(0x22)
  STA_ZEROP(0x3A)
  /*JMP_ABSOL(m1E25)*/
  m1E25();
  RTS
m24C6:
  RTS
}

void m24C7(void)
{
  LDX_IMMED(0x8F)
  m24C9();
}

void m24C9(void)
{
  LDA_IMMED(0x81)
  LDY_IMMED(0xFF)
  OSBYTE81
  CPX_IMMED(0x00)
  RTS
}

void m24D3(void)
{
  LDX_IMMED(0xAE)
  JSR_ABSOL(0x24D8,m24C9)
  BEQ(m24DF)
  LDA_IMMED(0x00)
  STA_ABSOL(0x0CEA)
m24DF:
  LDX_IMMED(0xEF)
  JSR_ABSOL(0x24E4,m24C9)
  BEQ(m24F5)
  LDA_IMMED(0x0C)
  JSR_ABSOL(0x24EB,m224D)
  LDA_IMMED(0x10)
  JSR_ABSOL(0x24F0,m224D)
  LDA_IMMED(0x01)
  STA_ABSOL(0x0CEA)
m24F5:
  RTS
}

void m24F6(void)
{
  LDA_ABSOL(0x2F10)
  STA_ZEROP(0x8C)
  LDA_ABSOL(0x2F11)
  STA_ZEROP(0x8B)
  LDA_ZEROP(0x8D)
  STA_ABSOL(0x2F11)
  LDA_ZEROP(0x8E)
  STA_ABSOL(0x2F10)
  LDA_IMMED(0x00)
  STA_ZEROP(0x31)
  LDX_IMMED(0x10)
  JSR_ABSOL(0x2513,m13E8)
  LDX_IMMED(0x11)
  JSR_ABSOL(0x2518,m13E8)
  LDA_ZEROP(0x8C)
  STA_ABSOL(0x2F10)
  LDA_ZEROP(0x8B)
  STA_ABSOL(0x2F11)
  RTS
}

void m2523(void)
{
  /*palette change*/
  PHA
  LDA_IMMED(0x13)
  OSWRCH
  TXA
  OSWRCH
  PLA
  OSWRCH
  LDA_IMMED(0x00)
  OSWRCH
  OSWRCH
  /*JMP_ABSOL(mFFEE)*/
  OSWRCH
}
